从管理栏中删除All in One Pack

时间:2019-07-31 作者:Maher Aldous

您好,我想从管理栏中删除All-in-One Pack。

除此之外,我可以删除任何其他内容。我已经使用此方法从管理栏中删除了其他内容,如更新

通过以下代码获取菜单id:

// Debug admin bar menu and submen
if (!function_exists(\'aldous_debug_admin_menus\')):
function aldous_debug_admin_menus() {
    global $submenu, $wp_admin_bar, $pagenow;
    if ( current_user_can(\'manage_options\') ) { // ONLY DO THIS FOR ADMIN
        if( $pagenow == \'index.php\' ) {  // PRINTS ON DASHBOARD
            echo \'<pre>\'; print_r( $wp_admin_bar ); echo \'</pre>\'; // TOP LEVEL MENUS
            echo \'<pre>\'; print_r( $submenu ); echo \'</pre>\'; // SUBMENUS
        }
    }
}
add_action( \'admin_notices\', \'aldous_debug_admin_menus\' );
endif;

然后按以下代码删除菜单或子菜单:

function aldous_remove_items_from_admin_bar( $wp_admin_bar ) {
    $wp_admin_bar->remove_node(\'updates\');//remove the update from wordpress core.
    $wp_admin_bar->remove_node(\'all-in-one-seo-pack\');// this code not work and I want it to work to remove the menu.
}
add_action( \'admin_bar_menu\', \'aldous_remove_items_from_admin_bar\', 999 );
在此图像中,您将使用第一个代码找到id:enter image description here

1 个回复
最合适的回答,由SO网友:ChristopherJones 整理而成

你就快到了!如果您查看插件开发人员在哪里添加此操作,您将看到他们将优先级设置为1000。在999处调用函数的优先级时。

https://plugins.trac.wordpress.org/browser/all-in-one-seo-pack/trunk/aioseop_class.php#L3907

将优先级更新为大于1000:

add_action( \'admin_bar_menu\', \'aldous_remove_items_from_admin_bar\', 1200 );
用插件覆盖函数调用有点棘手,因为您不知道它们对调用设置了何种优先级。

希望有帮助!!

相关推荐

向用户ID隐藏WordPress“wp-admin”仪表板

是否有方法删除(&a);重定向网站的任何用户,使其无法访问https://www.example.com/wp-admin/ 除非有id,否则我已经看到一些示例围绕着询问是否正在使用admin ajax(如果有)重定向。然而,这并不是我想要的方法,因为我在一些管理员的前端使用了管理ajax。我只是不希望他们看到与wordpress后端有任何关系。只有用户ID 1可以访问wp admin。