(WP)隐藏管理员菜单&基于用户角色的受限访问

时间:2014-05-09 15:27:49

标签: wordpress

我想在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。如何限制与我根据用户角色隐藏的管理菜单相关的页面上的访问权限?现在,它只是隐藏管理菜单而不受限制,这意味着,保持链接的用户将获得该页面的访问权限。此代码不是特定于用户角色,而是特定于用户功能。

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

1 个答案:

答案 0 :(得分: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();
    }
}