繁体   English   中英

Wordpress function - is_user_logged_in() 总是返回 false

[英]Wordpress function - is_user_logged_in() is always returning false

当用户尝试访问 /wp-content/uploads/2020/05/test.pdf 时,我将我的 htaccess 文件设置为重定向到 PHP 脚本。 PHP 脚本位于我的根目录中。 重定向工作得很好。 在脚本中,我有以下代码:

require_once('wp-load.php');

if (is_user_logged_in()) {
    wp_redirect('https://mywesbite.com/page1/');
    exit;
} else {
    wp_redirect('https://mywesbite.com/page2/');
    exit;
} 

我在几个不同的 Wordpress 网站上对此进行了测试,其中两个网站按预期工作。 如果用户登录,他们将 go 到 page1。 但是,在我需要它工作的网站上,它总是将它们带到第 2 页。 我尝试停用所有插件并将主题更改为与代码使用的网站相同。 还是不行。 这让我觉得它与服务器设置有关。 它通过 GoDaddy 在托管 WordPress 上。 是否有一些服务器配置阻止它像其他网站一样正常工作? 这是我能想到的唯一区别。

我发现登录 cookie 在 PHP 脚本中未被识别。 我怀疑它与服务器设置有关,但无法查明问题所在。

但是,我确实找到了解决方法。 您可以在子主题中创建一个模板文件并将脚本放在其中,而不是将脚本放在根目录中。 然后将重定向指向您使用模板创建的页面。 一旦我做了这个改变,一切都按预期工作。

<?php
/**
 * Template Name: Redirect Template
 *
 */

if (is_user_logged_in()) {
    wp_redirect('https://mywesbite.com/page1/');
    exit;
} else {
    wp_redirect('https://mywesbite.com/page2/');
    exit;
}

?>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM