对不等于设置的用户名的管理员隐藏更新

时间:2016-10-06 作者:Stephen

WordPress中有没有一种方法可以隐藏其他管理员的更新通知,除非有用户名equal 要说main-admin?

基本上我想要这样的东西:

if ( username != \'main-admin\' ) {
    // Hide all updates
}
有没有办法做到这一点?

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

您可以尝试以下操作:

$current_user = wp_get_current_user();
if( user_can( $current_user, \'main-admin\' ) ) {
    // Do your stuff
}
有关更多信息,请阅读法典:
user_can , wp_get_current_user

Edit: 我的错误是读错了,我以为你指的是一个自定义角色主管理员
不要让我的错误突然变得正确,但也许你可以创建一个用户所属的角色。(可能更容易管理?)

<小时>Add-on 现在尝试给出正确的答案/选项

有几种方法/选项可以实现您的目标,如下2种:

知道名称可以使用:get_currentuserinfo()

global $current_user;
get_currentuserinfo();
if ( $current_user->user_lastname ) {
    // Do your stuff
}
法典:get_currentuserinfo

当您知道可以使用的用户id时get_current_user_id():

$user_id = get_current_user_id();
if ( $user_id == 5 ) {  // add correct id
    // Do your stuff 
}
法典:get_current_user_id

如上所述,您还可以创建一个带有管理员帽的自定义角色,如下所述here 作者:RutwickGangurde。为了保持这里的答案完整,我在这里添加了代码
NB: The setting is saved to the database (in table wp_options, field wp_user_roles), so it needs to run only once

我个人在functions.php 要确保某个函数只运行一次,在这种情况下,这是必须的
将这两个功能添加到functions.php (先复制一份!)

class run_once
{
    function run( $key )
    {
        $scenario = get_option( \'run_once\' );
        if ( isset( $scenario[$key] ) && $scenario[$key] )
        {
            return false;
        }
        else {
            $scenario[$key] = true;
            update_option( \'run_once\', $scenario );
            return true;
        }
    } // end function
} // end class

// Now use the class with this function (which will only run once!)
$run_once = new run_once;
if ( $run_once->run( \'cloneRole\' ) )
{       
    function cloneRole()
    {
        global $wp_roles;

        if ( ! isset( $wp_roles ) )
        $wp_roles = new WP_Roles();

        $adm = $wp_roles->get_role( \'administrator\' );
        //Adding a \'new_role\' with all admin caps
        $wp_roles->add_role( \'main-admin\', \'Main Admin\', $adm->capabilities );
    } // end Function
    add_action( \'init\', \'cloneRole\' );    
} // end if(..)
核心信息关于add_role

现在,您可以将用户添加到此自定义角色,并在其他情况下使用该角色,如:

$current_user = wp_get_current_user();
if( user_can( $current_user, \'main-admin\' ) )
{
    // Do your stuff
}

相关推荐

WP-ADMIN:“对不起,您不能访问此页面。”

两周后不使用我们的WP站点,登录/wp-admin/ 出现白屏错误:抱歉,不允许您访问此页面。我有:重命名plugins 到plugins.temp.通过phpMyAdmin创建了一个新的管理员用户。新用户已user_meta 的作用a:1:{s:13:"administrator";s:1:"1";}.</已重命名themes 到themes.temp.</删除核心WordPress文件,并替换为新上载的文件</已替换.htaccess 使用默认