簡體   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