php - wordpress 函数 remove_menu_page() 抛出错误

标签 php wordpress menu

我正在尝试删除 wordpress 管理面板上的一些顶级菜单。奇怪的是,我从声明函数的 plugin.php 文件中收到一条错误消息,内容如下: “第 1261 行为 C:\wamp\www\wordpress-alut\wp-admin\includes\plugin.php 中的 foreach() 提供的参数无效”。 我去了该文件并找到了以下代码:

function remove_menu_page( $menu_slug ) {
    global $menu;

    foreach ( $menu as $i => $item ) { // **this is line 1261**
        if ( $menu_slug == $item[2] ) {
            unset( $menu[$i] );
            return $item;
        }
    }

    return false;
}

重要的是要注意,当我使用 remove_submenu_page() 时,这是 plugin.php 中的下一个函数,我没有得到这样的错误。 我的函数,位于 functions.php 中:

add_action( 'admin_init', 'mf_remove_menu_pages' );
function mf_remove_menu_pages() {
    remove_menu_page('link-manager.php');
    remove_menu_page('index.php');
    remove_menu_page('users.php');
    remove_menu_page('upload.php');
    remove_menu_page('tools.php');
    remove_menu_page('edit.php');
    remove_menu_page('edit-comments.php');
    remove_menu_page('post-new.php');
    remove_submenu_page('themes.php','themes.php');
    remove_submenu_page('themes.php','theme-editor.php');
    remove_submenu_page('themes.php','widgets.php');
}; 

最佳答案

您在 $menu 实际设置之前调用了 mf_remove_menu_pages(),或者似乎在 $menu 从未设置的情况下向上。您需要等待 admin_menu 钩子(Hook)才能实际调用 remove_menu_page()。如果您在 admin_init 上执行此操作,那么您使用了错误的钩子(Hook),这就是为什么它在 AJAX 请求上很无聊

所以你需要改变你的钩子(Hook)。请试试这个:

add_action( 'admin_menu', 'mf_remove_menu_pages' );
function mf_remove_menu_pages() {
   remove_menu_page('link-manager.php');
   remove_menu_page('index.php');
   remove_menu_page('users.php');
   remove_menu_page('upload.php');
   remove_menu_page('tools.php');
   remove_menu_page('edit.php');
   remove_menu_page('edit-comments.php');
   remove_menu_page('post-new.php');
   remove_submenu_page('themes.php','themes.php');
   remove_submenu_page('themes.php','theme-editor.php');
   remove_submenu_page('themes.php','widgets.php');
}

希望这有帮助:)

关于php - wordpress 函数 remove_menu_page() 抛出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9052416/

相关文章:

移动菜单上的 JavaScript 似乎不起作用

html - 顶部菜单与页面内容重叠

php - Laravel 5.6 创建多个关系

php - 显示数据库的结果

php - 格式化json数据。如何合并具有与键相同值的json数组?

wordpress - WooCommerce 在以下情况下强制结帐字段

css - Wordpress 页眉宽度(Genesis、Foodie Pro)

php - 如何在不编写长查询的情况下查询所有 GraphQL 类型字段?

html - WordPress - 将按钮添加到标题区域

php - 使用php和mysql生成嵌套菜单的链接