【问题标题】:Random color in cookie with wordpress使用wordpress在cookie中随机颜色
【发布时间】:2017-01-10 16:47:13
【问题描述】:

当访问者到达网站时,我随机选择一种主色,然后我想在 1 小时内将该颜色存储在 cookie 中。

我正在研究 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 );
}

问题是每次我刷新页面时都会设置新颜色……不明白为什么!

【问题讨论】:

    标签: php wordpress cookies


    【解决方案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。

    【讨论】:

    • 我太傻了!重新加载问题现在可以了 :) 但在第一次加载时,如果 cookie 为空,我没有主色……
    【解决方案2】:

    所以我终于解决了我的问题,然后在模板中检查 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 );
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2014-10-07
      • 2015-04-26
      • 2013-06-07
      • 1970-01-01
      • 2015-04-09
      • 1970-01-01
      • 2011-11-07
      • 1970-01-01
      • 2018-03-18
      相关资源
      最近更新 更多