如果用户未登录,我试图在我的WordPress网站上重定向到目标网页,但它总是卡在重定向循环中。这基本上就是我所拥有的(在functions.php中)......
add_action( 'template_redirect', function() {
if ( !is_user_logged_in() && ! is_page('login-to-view') ){
wp_redirect( site_url( '/login-to-view' ) );
exit();
}
});
答案 0 :(得分:5)
我知道我迟到了。我听说Big和Pac正在努力奋斗...... 无论如何,这就是我通常做的事情:
add_action( 'template_redirect', function() {
if( ( !is_page('login') ) ) {
if (!is_user_logged_in() ) {
wp_redirect( site_url( '/login' ) ); // redirect all...
exit();
}
}
});
说明: 上面发生的事情是除了登录页面之外,对网站上每个页面的访问都受到限制。如果需要,您可以选择排除或包含其他页面,也可以选择wp-admin URL。
答案 1 :(得分:1)
问题是我在functions.php中有这个功能。 is_page还不知道它在哪个页面上。我把它移到标题中,就在doctype声明之前,它现在只用这个...
Math.PI/2
另一件需要注意的事情......我无法让它在我的本地主机上工作,我在想因为找不到site_url,它只是重定向到localhost:8888 / login-to-图
我正在使用MAMP,但我猜你可以在PRO版本中设置类似的URL路径。
答案 2 :(得分:0)
让我们说用户没有登录。
然后你的代码以这种方式思考:
用户被重定向到您的页面,然后该过程再次开始。这就是你获得无限循环的原因。
尝试改变支票的顺序:
<?php
add_action( 'template_redirect', function() {
if ( ! is_page('login-to-view') && ! is_user_logged_in() ){
wp_redirect( site_url( '/login-to-view' ) );
exit();
}
});