声明 我很抱歉这个问题与另一个问题密切相关。我会评论原帖,但我没有足够的声誉,而且我没有足够的编程经验来回答问题来磨练声誉。
问题 我使用以下代码强制用户登录我的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
答案 0 :(得分: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/