Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在本地主机上的WordPress中设置Cookie_Php_Wordpress_Setcookie - Fatal编程技术网

Php 在本地主机上的WordPress中设置Cookie

Php 在本地主机上的WordPress中设置Cookie,php,wordpress,setcookie,Php,Wordpress,Setcookie,我在WordPress安装中设置cookie时遇到了一些问题 这是我的密码: function write_cookies() { setcookie("category", get_query_var('cat'), time() + 3600 * 24, COOKIEPATH, '', false); print($_COOKIE["category"]); } add_action('init', 'write_cookies'); 理论上,这应该输出类别ID,但似乎没有

我在WordPress安装中设置cookie时遇到了一些问题

这是我的密码:

function write_cookies() {
    setcookie("category", get_query_var('cat'), time() + 3600 * 24, COOKIEPATH, '', false);
    print($_COOKIE["category"]);
}
add_action('init', 'write_cookies');
理论上,这应该输出
类别ID
,但似乎没有任何效果

我是在localhost上读到的,在cookie域工作时提供了一个空白字符串,但我无法获得任何类型的输出。我还尝试将
'localhost'
'.localhost'
'127.0.0.1'
false
NULL
作为域。
COOKIEPATH
常量当前输出
'/'

我正在通过Chrome阅读cookies,页面上的cookies似乎没有任何变化

更新:

谢谢你迄今为止的答案,我会解释为什么我需要饼干在这种情况下

基本上,在我的帖子页面上,我希望显示相同类别的其他帖子。对于具有多个类别的用户,这意味着存储用户到达帖子的路线。我将给出一个真实世界的例子:

用户将在家中浏览行业新闻,发布标题为“为制造业提供新资金重振地方政界”。现在,在本节的其他帖子中,我想展示行业新闻帖子,但由于所讨论的特定帖子是在行业新闻和政治新闻下设立的,我如何判断采取了哪条路线

在第一个例子中,这是为了分析wp_get_referer()来确定哪个类别出现在帖子之前。但是,如果我随后使用“其他帖子”部分转到一篇题为“制造业新的区域发展”的帖子,该帖子被归类为行业新闻和区域新闻,那么wp_get_referer将返回上一篇帖子,而不是我逻辑中要求的类别

我的解决方案是(在访问类别页面时)存储类别的id,并在将来的所有逻辑中使用该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');

这将在不打印cookie的情况下输出
test:

我会让wordpress使用类似于:
stru-replace(
stru-replace”)的内容为我找出合适的域http://www“,”,获取博客信息(“url”)
。如果wordpress的默认类别不够的话


一般来说,使用Wordpress默认类别和标记结构比使用原始Cookie要好得多。那么为什么你还需要一块饼干呢?

Chrome有一个已知的限制


您无法设置/访问Cookie。Chrome中的奇怪问题。

我在非WordPress安装上测试了各种Cookie域,发现在本地主机环境中,唯一成功设置变量的域是
'
,即空字符串

这是我现在的代码:

function write_cookies() {    
    setcookie("category", get_query_var('cat'), false, '/', '',false);
}

我还对其进行了调整,使其从post循环中调用,而不是从“init”事件中调用,这使我能够访问比init事件多得多的变量来设置到cookie中。

我不知道这一点。但是再一次,内置的分类不起作用吗?+1指出了错误。但是,
打印($_COOKIE[“category”])在其他浏览器中也不起任何作用。请查看我的更新以了解“为什么”的解释。这令人困惑。