在wordpress插件中,在运行函数之前检查用户是否为admin

时间:2015-01-24 01:51:31

标签: php wordpress wordpress-plugin

如何在Wordpress插件中运行函数之前检查用户是否为admin。看起来应该是微不足道的东西是一种痛苦。

我在网上看过几十个帖子,找不到一件有用的东西。我尝试了下面的例子(在其他六件事中),这是插件中的一个函数:

global $current_user;
if ( $current_user->role[0]=='administrator' ) {    

    function remove_post_metaboxes() {
        remove_meta_box( 'formatdiv','album','normal' );
    }
    add_action('admin_menu','remove_post_metaboxes');
}

3 个答案:

答案 0 :(得分:2)

 <?php if (current_user_can( 'manage_options' )) {
          // do stuff
  } ?>

答案 1 :(得分:2)

$current_user = wp_get_current_user();
// print_r($current_user);
if ($current_user->has_cap('administrator')) {

    // do something 
    echo 'is an admin';
} 

答案 2 :(得分:0)

所以我做错了,ReLeaf提供的答案部分正确,但是没有人指出,不是像我在原始问题中给出的示例那样包装函数,而是为什么我得到一个空白的管理屏幕:

global $current_user;
if ( $current_user->role[0]=='administrator' ) {    

    function remove_post_metaboxes() {
        remove_meta_box( 'formatdiv','album','normal' );
    }
    add_action('admin_menu','remove_post_metaboxes');
}

我应该在函数内部使用条件:

function remove_post_metaboxes() {
    global $current_user;
    if ( $current_user->role[0]=='administrator' ) {
        remove_meta_box( 'formatdiv','album','normal' );
    }
}
add_action('admin_menu','remove_post_metaboxes');

这就是它的完成方式,感谢我向我指出;)