猿问

WordPress 中的 add_submenu_page

当使用add_submenu_page在 WooCommerce 中创建新子菜单时,我收到“无法修改标头信息 - 标头已发送”。其add_submenu_page情况如下:


    public function slp_add_menu_item() {

        add_submenu_page(

            'woocommerce',

            'Shipping Locations',

            'Shipping Locations',

            'manage_options',

            'slp_add_states',

            array( $this->slp_settings_page() ),

        );

    }

https://i.stack.imgur.com/QdfEm.png

将其更改为以下内容可以删除“无法修改标头信息 - 标头已发送”错误,但无法正确呈现回调函数:


    public function slp_add_menu_item() {

        add_submenu_page(

            'woocommerce',

            'Shipping Locations',

            'Shipping Locations',

            'manage_options',

            'slp_add_states',

            array( $this, 'slp_settings_page' ),

        );

    }

https://i.stack.imgur.com/2Eeze.png

回调函数slp_settings_page反过来呈现一个实例WP_List_Table(尽管出现在上面的屏幕截图中,但这不是一个分类法)。是add_submenu_page通过admin_menu钩子添加的,没有任何优先级。

对这里发生的事情有什么想法吗?我似乎无法理解它:(


DIEA
浏览 89回答 1
1回答

白板的微信

第一个代码块是错误的。根据文档,最后一个参数应该是可调用的。第一个块直接执行该函数并将结果存储在数组中(顺便说null一句,结果为 )。因此,将其作为可调用对象传递是行不通的。我不知道为什么第二个块不起作用。也许代码块在错误的时间执行,也许还有其他问题。
随时随地看视频慕课网APP
我要回答