(可湿性粉剂)根据用户角色隐藏管理员菜单和受限访问



我想隐藏管理菜单和限制访问该页面的Wordpress。对于隐藏管理菜单,我已经完成了。下面是示例代码:

add_action( 'admin_init', 'my_remove_menu_pages' );
function my_remove_menu_pages() {
    // If the user does not have access to publish posts
    if(!current_user_can('manage_options')) {
        remove_menu_page('tools.php');
    }
}

创建新的用户角色,例如image_uploader。我怎样才能限制访问与我基于用户角色隐藏的管理菜单相关的页面?目前,它只是隐藏管理菜单,而不是限制,这意味着,谁保持链接的用户将获得访问该页面。这段代码不是针对用户角色的,而是针对用户能力的。

我想要的是隐藏和限制菜单和页面基于特定的用户角色。我该怎么办?

您可以使用钩子 load-$page ,如:

# /wp-admin/$page.php
$pages = array( 'profile', 'tools' );
foreach( $pages as $page )
    add_action( "load-$page.php", 'block_user_so_23568456' );
function block_user_so_23568456()
{
    $user = get_userdata( get_current_user_id() );
    # Send this user role to the Dashboard /wp-admin/index.php
    if ( in_array( 'image_uploader', $user->roles ) ) 
    {
        wp_redirect( admin_url() );
        exit();
    }
}

最新更新