【发布时间】:2012-04-02 12:19:09
【问题描述】:
我在我的 WordPress 安装中设置 cookie 时遇到了一点问题。
这是我的代码:
function write_cookies() {
setcookie("category", get_query_var('cat'), time() + 3600 * 24, COOKIEPATH, '', false);
print($_COOKIE["category"]);
}
add_action('init', 'write_cookies');
理论上,这应该输出categoryId,但似乎没有任何效果。
我在 localhost 上阅读了该内容,在 cookie 域有效时提供了一个空白字符串,但我无法获得任何类型的输出。我还尝试将'localhost'、'.localhost'、'127.0.0.1'、false 和NULL 作为域。 COOKIEPATH 常量当前输出 '/'
我正在通过 Chrome 读取 cookie,页面上的 cookie 似乎没有任何变化。
更新:
到目前为止,感谢您的回答,我将解释为什么在这种情况下我需要 cookie...
基本上,我希望在我的帖子页面上显示同一类别的其他帖子。对于那些有多个类别的人来说,这意味着存储用户到达帖子的路线。我将举一个现实世界的例子:
用户将从主页导航到行业新闻以发布题为“制造业新资金重振当地政客”的帖子。现在,在此部分的其他帖子中,我想显示行业新闻帖子,但由于相关帖子是在行业新闻和政治新闻下设置的,我如何判断走的是哪条路线?
在第一个实例中,这是为了分析 wp_get_referer() 以确定哪个类别出现在帖子之前。但是,如果我随后使用此“其他帖子”部分移动到标题为“制造业新区域发展”的帖子,该帖子被归类为行业新闻和区域新闻,wp_get_referer 返回上一个帖子,而不是我的逻辑所需的类别.
我的解决方案是(在访问类别页面时)存储类别的 ID,并在以后的所有逻辑中使用它来确定要在“其他帖子”部分中显示的正确类别。
我知道这很令人困惑,但我在设计和交付此特定流程的客户需求方面都受到限制。
按照建议,我更新了要显示的代码:
function write_cookies() {
setcookie("category", get_query_var('cat'), false, '/', str_replace('http://www','',get_bloginfo('url')));
print('test: '.$_COOKIE["category"]);
}
add_action('init', 'write_cookies');
这会输出 test: 而不打印 cookie。
【问题讨论】: