基于用户角色(WP)隐藏管理员菜单和访问受限((WP) Hide Admin Menu & Rest

2019-10-20 02:22发布

我想隐藏管理员菜单和页面的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。 我该怎么办向相关的,我已经根据用户角色隐藏管理员菜单页面上限制访问? 在现在,它只是隐藏管理菜单,而不是限制,即意味着,用户谁保持联系将得到该网页的访问。 而这个代码不特定于用户的角色,但具体到用户的能力。

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

Answer 1:

您可以使用钩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();
    }
}


文章来源: (WP) Hide Admin Menu & Restricted Access Based On User Role
标签: wordpress