在WordPress中隐藏管理菜单项

toiithl6  于 2022-12-17  发布在  WordPress
关注(0)|答案(4)|浏览(202)

我正试图隐藏某些管理员菜单项在WordPress的所有用户,除了一个(我自己)。
我可以找到各种各样的教程,但它们大多隐藏在用户角色而不是用户上。
我发现这从WordPress的法典:

<?php 
function custom_menu_page_removing() {
    remove_menu_page( $menu_slug );
}
add_action( 'admin_menu', 'custom_menu_page_removing' );
?>

但是我并不完全理解它,而且我想我需要添加一些PHP到它,以使代码基本上说:

如果用户不是shaun@seedcreativity.co.uk(我!)
然后删除这些菜单项:
项目ID 1、项目ID 2、项目ID 3等

有人能帮忙吗?

nx7onnlm

nx7onnlm1#

您可以检查用户ID:

// admin_init action works better than admin_menu in modern wordpress (at least v5+)
add_action( 'admin_init', 'my_remove_menu_pages' );
function my_remove_menu_pages() {

  global $user_ID;

  if ( $user_ID != 1 ) { //your user id

   remove_menu_page('edit.php'); // Posts
   remove_menu_page('upload.php'); // Media
   remove_menu_page('link-manager.php'); // Links
   remove_menu_page('edit-comments.php'); // Comments
   remove_menu_page('edit.php?post_type=page'); // Pages
   remove_menu_page('plugins.php'); // Plugins
   remove_menu_page('themes.php'); // Appearance
   remove_menu_page('users.php'); // Users
   remove_menu_page('tools.php'); // Tools
   remove_menu_page('options-general.php'); // Settings
  }
}
ej83mcc0

ej83mcc02#

您可以使用以下命令删除给定电子邮件的帖子菜单:

function custom_menu_page_removing() {
    if ( get_currentuserinfo()->user_email != 'shaun@seedcreativity.co.uk' )
        remove_menu_page( 'edit.php' );
}
add_action( 'admin_menu', 'custom_menu_page_removing' );

如果用户能猜到正确的URL,例如/wp-admin/edit.php,它不会阻止用户使用已删除的页面

wmomyfyw

wmomyfyw3#

你可以试试这个代码。

function remove_menus(){
     $current_user = wp_get_current_user();
    if( 'shaun@seedcreativity.co.uk' !==  $current_user->user_email){
        remove_menu_page( 'item1' ); 
        remove_menu_page( 'item2' ); 
    }

}
add_action( 'admin_menu', 'remove_menus' );

item1、item2是您的页面名称,例如http://test.com/wp-admin/admin.php?page=item1http://test.com/wp-admin/admin.php?page=item2

3ks5zfa0

3ks5zfa04#

要隐藏woocommerce,营销,acf字段和分析菜单使用下面的代码

add_action( 'admin_init', 'remove_menu_pages' );
function remove_menu_pages() {

  global $user_ID;

  if ( $user_ID != 1 ) { 
   remove_menu_page( 'edit.php?post_type=acf-field-group' );
   remove_menu_page( 'edit.php?post_type=product' );
   remove_menu_page('woocommerce');
   remove_menu_page('wc-admin&path=/analytics/overview');
   remove_menu_page('woocommerce-marketing');
  }
}

相关问题