PHP setcookie() 函数在 Wordpress 模板文件中不起作用

标签 php wordpress cookies setcookie

我正在使用此代码在 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(); ?>

任何帮助将不胜感激。 感谢和问候

最佳答案

您不能在输出开始后设置 cookie。 Cookie 和所有其他 HTTP header 信息只能在输出开始之前设置。 输出 可以表示从 PHP 标记前的空白区域到实际 HTML 内容的任何内容。

您永远不必将 cookie 放入体内。所有逻辑都应在开始模板输出之前完成。

关于PHP setcookie() 函数在 Wordpress 模板文件中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20750975/

相关文章:

不同页面的 Wordpress 自定义头文件?

javascript - 仅当 cookie 存在时才添加Class,否则隐藏

php - 单选按钮在 mysql 数据库中显示值为 0

php - 随机变量时 undefined offset ?

php - mysql datatable.net 行值总计无法正常工作

jquery - 如何找出脚本已添加到wordpress后端?

python - 如何使用 Python 抓取需要先登录的网站

java - 为什么 setmaxage 不允许超过 ~5 分钟的时间

php - 将 PHP 文件重命名为 .php 以外的名称

php - 如何根据 strip 发票对象找出所使用的付款方式?