如何删除用户的wp面板

时间:2019-01-12 作者:Mariusz

你好,我有一个问题,我想自己为用户创建整个面板,我不想只隐藏wordpress面板我不想让用户访问wordpress面板,这可能吗,因为我知道如何隐藏它:

add_action(\'after_setup_theme\', \'remove_admin_bar\');

function remove_admin_bar() {
    if (!current_user_can(\'administrator\') && !is_admin()) {
        show_admin_bar(false);
    }
}
但如果有人键入站点/wp管理员,他仍然可以访问。

1 个回复
最合适的回答,由SO网友:Krzysiek Dróżdż 整理而成

首先,你不应该使用current_user_can 具有角色的功能。正如Codex明确指出的那样,您应仅将功能用作参数:

虽然部分支持针对特定角色而不是功能进行检查,但不鼓励这种做法,因为它可能会产生不可靠的结果。

So, if we\'ve dealt with that major issue...

如果要禁用订阅服务器的wp admin,您必须做两件事:

1。隐藏管理栏是用户登录时显示在页面顶部的黑色栏。

您可以使用以下代码隐藏它:

function remove_admin_bar() {
    if ( is_user_logged_in() ) {
        $user = wp_get_current_user();
        if ( in_array(\'subscriber\', $user->roles) ) {
              show_admin_bar(false);
        }
    }
}
add_action(\'after_setup_theme\', \'remove_admin_bar\');

2。阻止wp管理员访问

function restrict_wpadmin_access() {
    if ( ! defined(\'DOING_AJAX\') || ! DOING_AJAX ) {
        $user = wp_get_current_user();

        if ( in_array(\'subscriber\', $user->roles) ) {
            wp_redirect( site_url( \'/user/\' ) );  // <- or wherever you want users to go instead
            die;
        }
    }
}
add_action( \'admin_init\', \'restrict_wpadmin_access\' );
如果要针对不同的用户组,只需在上述两个函数中更改此行即可满足您的需要:

if ( in_array(\'subscriber\', $user->roles) ) {

相关推荐

WP-ADMIN:“对不起,您不能访问此页面。”

两周后不使用我们的WP站点,登录/wp-admin/ 出现白屏错误:抱歉,不允许您访问此页面。我有:重命名plugins 到plugins.temp.通过phpMyAdmin创建了一个新的管理员用户。新用户已user_meta 的作用a:1:{s:13:"administrator";s:1:"1";}.</已重命名themes 到themes.temp.</删除核心WordPress文件,并替换为新上载的文件</已替换.htaccess 使用默认