繁体   English   中英

Wordpress:登录用户但无权访问wp-admin

[英]Wordpress: Login for Users Without access to wp-admin

我有一个wordpress应用程序,希望公众只有在注册和登录后才能查看该网站。

另外,我不希望用户在注册时可以访问wp-admin。 我使用了Theme My Login插件,但是它所做的只是帮助您获得自定义的wp-login页面,因为注册用户将可以访问wp-admin。

PS:很抱歉,如果以前没有问过这个问题,我找不到它,很难在没有看到仅自定义wp-login页面的页面的情况下使用“具有自定义登录名的wordpress”进行搜索。

我有一个WordPress网站要求,只有登录的用户才能看到该网站及其内容。 几年前,我遇到了这段代码,发现它很有帮助。 将其放入您的functions.php中,当有访客登录并且没有登录时,它将重定向到wp-login.php页面进行登录。 登录后,他们便可以查看该站点而不会被阻止。

这是一个示例,它可以帮助使不需要的访问者远离您的网站内容。

在下面添加块,使您的网站仅可用于已登录身份验证的用户。 如果用户未通过身份验证,那么他们将被重定向到登录页面

    <?php

    // Redirect users who arent logged in...
    function members_only() {
        global $pagenow;
        // Check to see if user in not logged in and not on the login page
        if( !is_user_logged_in() && $pagenow != 'wp-login.php' )
              auth_redirect();
    }
    add_action( 'wp', 'members_only' ); 

    ?>

如果您正在寻找自定义登录页面? 我知道有一个插件可以为您完成此任务,例如“主题我的登录名”。 另外,在用户登录后,您希望他们被重定向回站点并且没有仪表板访问权限吗? 您可以尝试使用“删除仪表板访问权限”插件。 希望这可以帮助!

强制登录 WordPress插件可能是您正在寻找的东西。

在我看来,我仍然允许用户访问仪表板,以便他们可以使用配置文件部分来更改其密码,电子邮件等。在基本的订户级别,他们不能做更多的事情,因此您不必担心。

如果您仍然坚持禁止他们访问仪表板,这可能会有所帮助https://premium.wpmudev.org/blog/limit-access-to-your-wordpress-dashboard/

这是一个有意义的方案,注册用户将具有订户编辑者角色或您打算设置的任何角色。 您需要为注册用户设置限制,使其无法访问wp-admin

这是可以帮助您实现这一目标的代码。

您需要将USER_ROLE_NAME_HERE替换为注册用户角色。

function wp_register_user_no_admin_access(){
    $redirect = isset( $_SERVER['HTTP_REFERER'] ) ? $_SERVER['HTTP_REFERER'] : home_url( '/' );
    if ( current_user_can( 'USER_ROLE_NAME_HERE' ) ){
        exit( wp_redirect( $redirect ) );
    }
}
add_action( 'admin_init', 'wp_register_user_no_admin_access', 100 );

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM