2017-01-09 111 views
1

當訪問者到達網站時,我隨機選擇一種主色,然後我想在1小時內將此顏色存儲在cookie中。Cookie中的隨機顏色與wordpress

我正在研究wordpress。 目前我已經得到了這個在我function.php

add_action('init', 'setting_my_first_cookie'); 
function setting_my_first_cookie() { 
    $colourRange = array('#965c5d', '#5f797a', '#bc8b6a', '#7fc3a2', '#89383a', '#f28c5d'); 
    $colourTheOnlyOne = $colourRange[array_rand($colourRange, 1)]; 
    $cookieColor = 'cookieColor'; 
    $cookieValue = $colourTheOnlyOne; 
    setcookie($cookieColor, $cookieValue, 60 * DAYS_IN_SECONDS, COOKIEPATH, COOKIE_DOMAIN); 
} 

問題是我每次刷新一個新的顏色設置頁面時......不明白爲什麼!

回答

0

所以我終於解決我與和我檢查模板後問題,如果一個cookie是可用的,如果不是我顯示

$colorRange = array('#965c5d', '#5f797a', '#bc8b6a', '#7fc3a2', '#89383a', '#f28c5d'); 
$cookieValue = $colorRange[array_rand($colorRange, 1)]; 
global $cookieValue; 

add_action('init', 'setting_cookie'); 
function setting_cookie() { 
    global $cookieValue; 
    $cookieTheValue = $cookieValue; 
    $cookieColor = 'cookieColor'; 
    if (!isset($_COOKIE[$cookieColor])) { 
     setcookie($cookieColor, $cookieTheValue, time()+60, COOKIEPATH, COOKIE_DOMAIN); 
    } 
} 
1

您需要檢查cookie值以查看是否存在以避免重置它。每次重新加載頁面時,基本上都會覆蓋Cookie。

add_action('init', 'setting_my_first_cookie'); 
function setting_my_first_cookie() { 
    $cookieColor = 'cookieColor'; 
    if (!isset($_COOKIE[$cookieColor])) { 
     $colourRange = array('#965c5d', '#5f797a', '#bc8b6a', '#7fc3a2', '#89383a', '#f28c5d'); 
     $cookieValue = $colourRange[array_rand($colourRange, 1)]; 
     setcookie($cookieColor, $cookieValue, 60 * DAYS_IN_SECONDS, COOKIEPATH, COOKIE_DOMAIN); 
    } 
} 

此檢查的cookie「cookieColor」,如果被發現,不寫的cookie。

+0

我太傻了!重裝問題現在好了:)但在第一次加載時,如果cookie爲空,我沒有主色... – Alex