1
我想在我的wordpress主題header.php文件中設置一個cookie。基於頁面設置主題header.php中的Cookie - wordpress
我已經找到了一些有關此信息,但它似乎都使用functions.php文件,這對我來說不是一個真正的選擇,因爲我設置基於頁面的cookie。
我只是想知道我該如何去做這件事,或者有什麼可能的解決辦法。
這是我的代碼從我的header.php文件。
<?
// Set cookie
if (is_page('437')) {
setcookie("DM", "mis", time()+31536000);
} else if (is_page('441')) {
setcookie("DM", "w2p", time()+31536000);
}
echo $_COOKIE["DM"];
print_r($_COOKIE);
// Check cookie to load style
if (!is_front_page()){
if (isset($_COOKIE["DM"])) {
if ($_COOKIE["DM"] == "mis") { ?>
<link rel="stylesheet" type="text/css" media="all" href="<?php bloginfo('template_directory'); ?>/css/mis.css" />
<? } else if ($_COOKIE["DM"] == "w2p") { ?>
<link rel="stylesheet" type="text/css" media="all" href="<?php bloginfo('template_directory'); ?>/css/w2p.css" />
<? }
}
}
?>
我應該補充說,查看頁面437或441時,cookie可以工作,但是一旦我導航到另一頁面,cookie似乎沒有值,但我沒有做任何操作來刪除它的值。 – Adam
我會檢查他們是否沒有被設置在更早的請求。在PHP.net手冊中,「一旦cookie被設置好了,它們就可以在下一頁加載$ _COOKIE或$ HTTP_COOKIE_VARS數組。」請注意,像$ _COOKIE這樣的超級全局變量可以在PHP 4.1.0中使用。存在於$ _REQUEST中。「--->據我所知,設置的cookie需要新的頁面加載。 – Ray
@Adam也是這樣的:在下一次加載該cookie應該可見的頁面之前,Cookie不會變得可見。要測試cookie是否設置成功,請在cookie過期之前在下一個加載頁面上檢查cookie。過期時間通過expire參數設置。調試cookie存在的一個好方法是簡單地調用print_r($ _ COOKIE);. – Ray