在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');
这就是它是如何完成的,谢谢我向我指出它;)