【问题标题】:"Invalid key" on Subscriber roles in wordpresswordpress 中订阅者角色的“无效键”
【发布时间】:2014-03-12 17:25:14
【问题描述】:

免责声明 我很抱歉这个问题与另一个问题密切相关。我本来会对原帖发表评论,但我没有足够的声誉,也没有足够的编程经验来通过回答问题来磨砺声誉。

问题 我使用以下代码强制用户登录我的 wordpress 网站:

    // Force user to login on welcome
function forceLogin() {
global $post;

    if ( ( is_single() || is_front_page() || is_page() || is_archive() || is_post() ) 
           && !is_page('login') && !is_user_logged_in()){ 
        auth_redirect(); 
    }  
}

然后我将该函数包含在我的子主题的 header.php 文件中。到目前为止,一切都很好。

我遇到的问题是,当具有“订阅者”角色的用户登录并尝试访问我的帖子页面(也设置为我的静态主页)时,他们会被重定向到“丢失密码”页面“无效密钥”错误(即:www.domain.com/lostpassword/?error=invalidkey)。

应该注意的是,我正在使用 Theme My Login 插件 (http://wordpress.org/plugins/theme-my-login/) 来设置我的登录页面的样式。

非常感谢,请保持温柔。

原帖 Wordpress force user to login before view any site content

【问题讨论】:

    标签: wordpress wordpress-theming


    【解决方案1】:

    您是否只想将您网站的所有已注销访问者重定向到登录页面?只需将其添加到主题的 functions.php 文件中,然后删除您添加到 header.php 文件中的代码即可。

    function redirect_to_login_page() {
        if ( ! is_user_logged_in() && ! is_admin() ) {
            wp_redirect( home_url() . '/login/' );
            exit();
        }
    }
    add_action( 'template_redirect', 'redirect_to_login_page' );
    

    注意:假设您的登录页面是通过example.com/login/访问的

    【讨论】:

    • 这是一个很酷的简化。但是我的问题与尝试登录时的无效密钥有关。我还找到了一种绕过我的代码来测试它的方法,并且我已经将问题隔离到插件本身。因此,我已经在支持论坛上发布了该插件,希望我能得到创建者的意见。
    猜你喜欢
    • 1970-01-01
    • 2013-02-26
    • 1970-01-01
    • 1970-01-01
    • 2016-12-03
    • 1970-01-01
    • 2016-07-19
    • 1970-01-01
    • 2019-05-06
    相关资源
    最近更新 更多