Wordpress 如果未登录,则重定向用户

Wordpress 如果未登录,则重定向用户,wordpress,redirect,Wordpress,Redirect,我在我的网站上使用自定义页面,我需要检查用户是否登录,如果没有,则重定向到另一个页面。 成功登录后,会话变量设置为: session_start(); $_SESSION['login'] = "1"; 要检查用户是否登录页面,我在页面开头使用以下代码: session_start(); if($_SESSION['login']=='') { @header("location:login.php"); } 但是,即使用户未登录,页面也不会重定向。显示的错误是 注意:未定义索引:登

我在我的网站上使用自定义页面,我需要检查用户是否登录,如果没有,则重定向到另一个页面。 成功登录后,会话变量设置为:

session_start();
$_SESSION['login'] = "1";
要检查用户是否登录页面,我在页面开头使用以下代码:

session_start();
if($_SESSION['login']=='')
{
    @header("location:login.php");
}
但是,即使用户未登录,页面也不会重定向。显示的错误是

注意:未定义索引:登录XXXX/XXXX/XXXX/XXXX


除了
header()
,是否还有其他方法重定向用户,或者可以使用其他一些代码来实现相同的目的?

在您检查
$\u会话的
登录
索引时,似乎没有设置它,很可能是
$\u会话['login']=“1”位在您的检查之后出现,因此您必须确保使用
array\u key\u exists
功能验证它是否已设置,如下所示:

if (array_key_exists('login', $_SESSION) && $_SESSION['login']=='') {
    @header("location:login.php");
}
或者,您可能希望明确地设置
$\u会话['login']=0
,例如,默认情况下,并且仅设置
$\u会话['login']=1如果登录成功

同时,我不建议您使用自己的登录机制,而是使用最初由wordpress知识渊博的程序员设计并经过社区测试的脚本和技术。(将其添加到主题的
functions.php
)中描述了一种这样的方法:


您是将login.php创建为模板还是仅创建自定义文件?也可以尝试使用is_user_logged_in()。使用is_user_logged_in()函数检查用户是否登录。然后使用wp_redirect函数重定向到desire Location我正在使用login.php作为自定义文件。
add_action( 'init', 'redirect_visitors' );

function redirect_visitors() {
  if ( ! is_user_logged_in() ) {
    wp_redirect( 'http://your-site.com/wp-login.php' );
    exit;
  }
}