在Wordpress中隐藏管理菜单项

时间:2017-03-21 17:22:13

标签: php wordpress function

我试图在除了一个(我自己)之外的所有用户中隐藏Wordpress中的某些管理菜单项。

我可以找到各种教程,但它们大多隐藏在用户角色而不是用户身上。

我从Wordpress codex中找到了这个:

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

但是我并不完全理解它,而且我认为我需要添加一些PHP来实质上让代码说:

如果用户不是shaun@seedcreativity.co.uk(我!)

然后删除这些菜单项:

ItemID 1,ItemID 2,ItemID 3等......

有人可以帮忙吗?

3 个答案:

答案 0 :(得分:2)

您可以尝试使用此代码。

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=item1 http://test.com/wp-admin/admin.php?page=item2

答案 1 :(得分:1)

您可以删除给定电子邮件的帖子菜单:

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' );

如果用户可以猜出正确的网址,则不会阻止用户使用已移除的网页。 /wp-admin/edit.php

答案 2 :(得分:0)

您可以检查用户ID:

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
   remove_menu_page('edit.php'); // Posts
   remove_menu_page('upload.php'); // Media
  }
}