【发布时间】:2014-01-04 06:52:46
【问题描述】:
尝试在 WP 页面上设置 cookie 时出现此错误。
Warning: Cannot modify header information - headers already sent by(...)
这里有什么帮助吗?当我在 wordpress 之外执行 php 时,它运行良好,但是当我将它移入时,它坏了。 cookie 没什么特别的(非常基本)。
那么如何设置 cookie?
【问题讨论】:
尝试在 WP 页面上设置 cookie 时出现此错误。
Warning: Cannot modify header information - headers already sent by(...)
这里有什么帮助吗?当我在 wordpress 之外执行 php 时,它运行良好,但是当我将它移入时,它坏了。 cookie 没什么特别的(非常基本)。
那么如何设置 cookie?
【问题讨论】:
您需要在将任何输出发送到浏览器之前设置 cookie。在您主题的 functions.php 文件中,添加以下挂钩:
add_action('init', 'my_cookies');
function my_cookies(){
// set cookie here
}
init 挂钩在您的模板文件(header.php 等)被包含之前运行。如果您尝试将 cookie 代码放入 index.php 或 single.php 或任何模板文件中,您必须确保它在 get_header() 之前。一旦get_header()运行,你已经向浏览器发送了数据,你不能修改标题(这是修改cookie所必需的)。
您可能在 cookie 代码之前的代码中的其他地方泄漏了输出。如果您甚至在 cookie 代码之前的某处回显一个空格:echo " ",您将收到该错误。如果您的一个文件中有一个结束 php 标记 ?> 后面有一个空格,则会将其发送到浏览器,您将收到该错误。
【讨论】: