在wordpress插件中,在运行函数之前检查用户是否是管理员


In wordpress plugin check if user is admin before running a function

在Wordpress插件中运行函数之前,如何检查用户是否是管理员。看似微不足道的事情是一种痛苦。

我在网上看了几十个帖子,找不到一件有效的东西。例如,我尝试了以下内容(在其他六件事中),它是插件中的一个函数:

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');
}
 <?php if (current_user_can( 'manage_options' )) {
          // do stuff
  } ?>
$current_user = wp_get_current_user();
// print_r($current_user);
if ($current_user->has_cap('administrator')) {
    // do something 
    echo 'is an admin';
} 

所以我做错了,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');

这就是它是如何完成的,谢谢我向我指出它;)