我有一个自定义用户,我正在尝试最小化其访问权限。我想删除工具栏中的一些管理菜单,但仅限于此客户用户角色。我目前让它适用于不是管理员的所有人,但我无法按用户角色正确设置if函数。我的当前代码:
//Remove admin menu items if not admin
function remove_admin_bar_links() {
global $wp_admin_bar, $current_user;
if ($current_user->ID != 1) {
$wp_admin_bar->remove_menu(\'updates\'); // Remove the updates link
$wp_admin_bar->remove_menu(\'comments\'); // Remove the comments link
$wp_admin_bar->remove_menu(\'new-content\'); // Remove the content link
$wp_admin_bar->remove_menu(\'wp-logo\'); // Remove the WP Logo link
$wp_admin_bar->remove_menu(\'wpseo-menu\'); // Remove the Yoast SEO menu
}
}
add_action( \'wp_before_admin_bar_render\', \'remove_admin_bar_links\' );
最合适的回答,由SO网友:Webloper 整理而成
您可以使用wp_get_current_user() 获取当前登录用户角色的函数
//如果不是admin,则删除admin菜单项
function remove_admin_bar_links() {
global $wp_admin_bar, $current_user;
$user = wp_get_current_user();
if ( in_array( \'author\', (array) $user->roles ) ) {
$wp_admin_bar->remove_menu(\'updates\'); // Remove the updates link
$wp_admin_bar->remove_menu(\'comments\'); // Remove the comments link
$wp_admin_bar->remove_menu(\'new-content\'); // Remove the content link
$wp_admin_bar->remove_menu(\'wp-logo\'); // Remove the WP Logo link
$wp_admin_bar->remove_menu(\'wpseo-menu\'); // Remove the Yoast SEO menu
}
}
add_action( \'wp_before_admin_bar_render\', \'remove_admin_bar_links\' );