[英]How can I redirect users who are not logged in to my Wordpress site to a special login page?
我在index.php的网站上设置了重定向,但这确实使我的网站变慢,有什么建议吗? 这是我的代码:
<?php
if ( ! is_user_logged_in() ) :
if ( wp_redirect( '/?page_id=100/' ) ) {
exit;
}
endif;
?>
<?php get_header(); ?>
<div class="head"></div>
<main class="main-content">
// code continues
将访问者重定向到登录页面的代码
编辑
这很可能是因为您将重定向到不是您的登录页面的URL。 实际上,它永远不会成功,因为您基本上是在无休止的循环中重定向它。
index.php将处理对/?page_id = 100 /的请求,因此它将不断地重定向到其自身。 如果要执行wp_redirect( '/?page_id=100/')
,则需要创建一个异常,以便在转到该页面时不会重定向。 请参见下面的is_page(100)
条件。
在Wordpress中进行重定向的最佳做法是将重定向尽可能早地放在页面加载周期中。 因此,我建议您将代码放在functions.php中,而不要放在index.php中。 将其放在template_redirect
挂钩中。 此时,您知道用户是否登录:
function my_page_template_redirect()
{
if ( !is_user_logged_in() && !is_page(100) {
wp_redirect( '/?page_id=100/');
}
}
add_action( 'template_redirect', 'my_page_template_redirect' );
使用此功能可以提高网站的效率,因为它可以在您浪费时间做很多事情(如果您只想重定向用户)时甚至不需要做的事情之前,可以检查重定向条件。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.