阻止对作者和订阅者的管理访问?

时间:2012-05-29 作者:tolga

我想关闭作者和订阅者的管理面板。

有没有安全的方法让他们远离管理面板?

1 个回复
SO网友:brasofilo

创建functionality plugin 如果要完全阻止对管理面板的访问,请使用此选项:

/**
 * Hide the admin bar in the front end 
 */
add_filter(\'show_admin_bar\', \'__return_false\');

/**
 * Redirects Authors and Subscribers to the site front page using: get_home_url()
 */
add_action(\'admin_init\',\'block_users_wpse_53675\');

function block_users_wpse_53675()
{
    if( !current_user_can( \'delete_pages\' ) ) // blocks authors, contributors and subscribers
    {   
        wp_redirect( get_home_url(), 301 ); 
        exit;
    }
}
如果您希望用户只能访问其个人资料页面,请使用另一个:

/**
 * Redirect Authors and Subscribers to the site front page
 * Except if viewing the Profile page
 */
add_action(\'admin_init\',\'block_users_wpse_53675\');

function block_users_wpse_53675()
{
    global $pagenow;
    if( \'profile.php\' == $pagenow ) 
        return;

    if( !current_user_can(\'delete_pages\') ) 
    {   
        wp_redirect( get_home_url(), 301 ); 
        exit;
    }
}

/**
 * Hide all menus from the Admin panel
 * Except the profile item
 */
add_action(\'admin_menu\', \'remove_admin_menus_wpse_53675\', 999);

function remove_admin_menus_wpse_53675() 
{
    if( !current_user_can(\'delete_pages\') ) 
    {
        remove_menu_page(\'index.php\');
        remove_menu_page(\'edit.php\');
        remove_menu_page(\'upload.php\');
        remove_menu_page(\'link-manager.php\');
        remove_menu_page(\'edit.php?post_type=page\');
        remove_menu_page(\'edit-comments.php\');
        remove_menu_page(\'tools.php\');
    }
}
操纵角色和功能的感兴趣插件Members
  • User Role Editor
  • Role Scoper
  • S2Member
  • 结束

    相关推荐

    在ADMIN_MENU挂接中检查Current_Theme_Support

    我正在通过添加菜单和子菜单admin_menu 钩住我的函数。php。我想添加的子菜单之一是menus. 在此之前,我想确保主题支持菜单,所以我尝试使用current_theme_supports 函数,但它返回false,显然是因为$_wp_theme_features 在此阶段仍为空。我该怎么办?你认为我真的需要这张支票吗,如果我在我的职能范围内的话。php?如果我这样做了,我应该使用稍后的挂钩来创建菜单吗?或其他解决方案?