设置cookie时出现WP错误

时间:2014-01-03 22:11:37

标签: wordpress session cookies

尝试在WP页面上设置cookie时出现此错误。

Warning: Cannot modify header information - headers already sent by(...)

这里有什么帮助吗?当我在wordpress之外做php时它工作正常,但是当我移动它时,它就破坏了。关于cookie没什么特别的(非常基本的)。

那么如何设置cookie?

1 个答案:

答案 0 :(得分:0)

您需要在将任何输出发送到浏览器之前设置cookie。在主题的functions.php文件中,添加以下钩子:

add_action('init', 'my_cookies');
function my_cookies(){
    // set cookie here
}

init挂钩在包含模板文件(header.php等)之前运行。如果您尝试将Cookie代码放在index.phpsingle.php或任何模板文件中,则必须确保它在get_header()之前。运行get_header()后,您已经将数据发送到浏览器,并且无法修改标头(这是修改Cookie所必需的)。

在cookie代码之前,您可能会在代码中的其他位置泄漏输出。如果您甚至在cookie代码之前的某个地方回显了一个空格:echo " ",那么您将收到该错误。如果你的某个文件中有一个关闭的php标记?>后面有一个空格,那么这会被发送到浏览器,你就会收到错误。