如果当前用户同时具有'editor'和'contributor'角色,则删除管理员菜单



由于我的WordPress的具体情况,我需要为同时担任编辑器贡献者角色的用户删除"帖子"管理菜单项。

我有这段代码,但现在如果用户将编辑器贡献者作为其角色之一,它将删除此菜单项。只有当这两个角色都分配给当前用户时,我才需要这种行为。

如何更改我的代码以使其像这样工作?

function hide_posts_in_admin_menu() : void {
if ( ! function_exists( 'current_user_has_role' ) ) {
function current_user_has_role( $role ) {
$user = get_userdata( get_current_user_id() );
if ( ! $user || ! $user->roles ) {
return false;
}
if ( is_array( $role ) ) {
return array_intersect( $role, (array) $user->roles ) ? true : false;
}
return in_array( $role, (array) $user->roles, true );
}
}
if ( ! current_user_has_role( array( 'editor', 'contributor' ) ) ) {
return;
}
remove_menu_page( 'edit.php' );
}

谢谢!

您可以将此代码用于


function hide_menu() {
$user = wp_get_current_user();
if ( in_array( 'author', (array) $user->roles ) || in_array( 'contributor', (array) $user->roles ) ) {

remove_menu_page( 'edit.php' ); //Posts
}
}
add_action('admin_head', 'hide_menu');

最新更新