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