我正在使用此代码在wordpress网站中设置cookie。当我将此代码放在header.php中时,它完美地运行。但是,当我将此代码放在单独的模板文件中时,它不起作用。 头文件代码:(在HTML标记之前)
if (isset($_COOKIE['City'])) {
setcookie('City', 0, -(3600*3600*3600));
setcookie('City', "Edmonton2", 3600*3600*3600);
}
else {
setcookie('City', "Edmonton", 3600*3600*3600);
}
WP模板文件代码:(代码在get_header()函数之前)
<?php
if (isset($_COOKIE['City'])) {
setcookie('City', 0, -(3600*3600*3600));
setcookie('City', "Edmonton2", 3600*3600*3600);
}
else {
setcookie('City', "Edmonton", 3600*3600*3600);
}
?>
<?php
/*
Template Name: Community Landing Page
*/
get_header(); ?>
任何帮助都将受到高度赞赏。 谢谢&amp;此致
答案 0 :(得分:9)
输出开始后无法设置cookie。 Cookie和所有其他HTTP标头信息只能在输出开始之前设置。 输出可以表示从PHP标记之前的空白空间到实际的HTML内容。
你不应该把饼干放在身体里。所有逻辑都应在开始输出模板之前完成。
答案 1 :(得分:9)
问题是我没有提到函数中的路径。代码正在为特定页面创建cookie。这是更正后的功能:
setcookie('City', "Edmonton43003", (time()+3600), "/");