删除用户对仪表板的访问

时间:2012-06-03 作者:jay

据我所知,仪表板中的小部件可以删除,但我想问一下,是否有可能完全删除仪表板的访问权限,只允许访问新发布的内容。php页面?谢谢

1 个回复
最合适的回答,由SO网友:Johannes Pille 整理而成

Removing the dashboard:

/* Remove the "Dashboard" from the admin menu for non-admin users */
function wpse54085_remove_dashboard () {
    global $current_user, $menu, $submenu;
    get_currentuserinfo();

    if( ! in_array( \'administrator\', $current_user->roles ) ) {
        reset( $menu );
        $page = key( $menu );
        while( ( __( \'Dashboard\' ) != $menu[$page][0] ) && next( $menu ) ) {
            $page = key( $menu );
        }
        if( __( \'Dashboard\' ) == $menu[$page][0] ) {
            unset( $menu[$page] );
        }
        reset($menu);
        $page = key($menu);
        while ( ! $current_user->has_cap( $menu[$page][1] ) && next( $menu ) ) {
            $page = key( $menu );
        }
        if ( preg_match( \'#wp-admin/?(index.php)?$#\', $_SERVER[\'REQUEST_URI\'] ) && ( \'index.php\' != $menu[$page][2] ) ) {
            wp_redirect( get_option( \'siteurl\' ) . \'/wp-admin/post-new.php\');
        }
    }
}
add_action( \'admin_menu\', \'wpse54085_remove_dashboard\' );

Removing further parts of the admin menu:

在这里,您可以使用remove_menu_page() 作用

function wpse54085_admin_menu_fixes() {
    global $current_user;

    if( ! in_array( \'administrator\', $current_user->roles ) ) {
        remove_menu_page(\'link-manager.php\');
        /* add more menu pages, depending on what you want to remove */
    }
}
add_action( \'admin_menu\', \'wpse54085_admin_menu_fixes\' );
显然,这两种功能都可以扩展以区分其他用户角色。这两者都应该添加到主题的函数中。php文件。

结束

相关推荐

USERS表-USER_NAME与NICENAME

有人能解释一下users表中user\\u name和user\\u nicename字段的区别或不同用法吗?他们看起来和行为都一样。我在网络搜索中发现了一些帖子,但它们只与旧版本的wp相关。