首页 文章

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

提问于
浏览
1

我想在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 回答

  • 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();
        }
    }
    

相关问题