非插件实现Wordpress后台隐藏管理员信息

作者:stoat 发布时间:2014-10-23 分类:wordpress

Wordpress后台隐藏管理员组信息


对于开放型网站,比如社交投稿型,可能需要隐藏管理员组以保安全,防止账号爆破。
在主题functions.php下,添加


//用户页添加jquery add_action('admin_enqueue_scripts' , 'ft_hide_administrator_jquery' ); function ft_hide_administrator_jquery(){ global $pagenow; if ( 'users.php' == $pagenow ){ wp_enqueue_script('jquery'); } } // 根据权限判断,移除管理员组 add_action( 'editable_roles' , 'ft_hide_adminstrator_editable_roles' ); function ft_hide_adminstrator_editable_roles( $roles ){ if ( isset( $roles['administrator'] ) && !current_user_can('level_10') ){ unset( $roles['administrator'] ); } return $roles; } // Hide Administrator from list of users add_action('admin_head' , 'ft_hide_administrator_user'); function ft_hide_administrator_user(){ if ( !current_user_can('level_10') ){ ?> <script type='text/javascript' > jQuery(document).ready(function(){ var admin_count; var total_count; jQuery("#list-filter > .subsubsub > li > a:contains(Administrator)").each(function(){ admin_count = jQuery(this).children('.count').text(); admin_count = admin_count.substring(1, admin_count.length - 1); }); jQuery("#list-filter > .subsubsub > li > a:contains(Administrator)").parent().remove(); jQuery("#list-filter > .subsubsub > li > a:contains(All)").each(function(){ total_count = jQuery(this).children('.count').text(); total_count = total_count.substring(1, total_count.length - 1) - admin_count; jQuery(this).children('.count').text('('+total_count+')'); }); jQuery("#users > tr .administrator").parent().parent().remove(); }); </script> <?php } }
Wordpress后台隐藏管理员组信息1.pngWordpress后台隐藏管理员组信息2.png

Wordpress用户权限说明:


管理者:Administrator: level 10
编辑:Editor: Level 7
作者:Author: Level 4
撰写人员:Contributor: Level 2
订阅者:Subscriber: Level 0
一般访客(非会员): Level 在 0 以下

Wordpress后台隐藏超级管理员信息 & 设置超级管理员


对于同为管理员的,隐藏初始管理员信息(便于设置更多权限),即把该管理员设为超级管理员。
WordPress 3.1.x以上代码
add_action('pre_user_query','yoursite_pre_user_query');
function yoursite_pre_user_query($user_search) {
  $user = wp_get_current_user();
  if ($user->ID!=1) { // Is not administrator, remove administrator
    global $wpdb;
    $user_search->query_where = str_replace('WHERE 1=1',
      "WHERE 1=1 AND {$wpdb->users}.ID<>1",$user_search->query_where);
  }
}

WordPress 3.1以下代码
add_action('pre_user_search','yoursite_pre_user_search');
function yoursite_pre_user_search($user_search) {
  $user = wp_get_current_user();
  if ($user->ID!=1) { // Is not administrator, remove administrator
    global $wpdb;
    $user_search->query_where = str_replace('WHERE 1=1',
      "WHERE 1=1 AND {$wpdb->users}.ID<>1",$user_search->query_where);
  }
}

文章参考:


http://fullthrottledevelopment.com/how-to-hide-the-adminstrator-on-the-wordpress-users-screen
http://wordpress.stackexchange.com/questions/10742/remove-ability-for-other-users-to-view-administrator-in-user-list

原文地址:非插件实现Wordpress后台隐藏管理员信息 by 雪鼬博客

标签:wordpress

评论已关闭