我正在使用此代码在 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/