【问题标题】:getting error message "headers already sent" in wordpress在 wordpress 中收到错误消息“标头已发送”
【发布时间】:2012-04-04 04:07:49
【问题描述】:

这是我收到的错误消息。我建立了自己的主题,它使用functions.php 拉入一堆文件

Warning: Cannot modify header information - headers already sent by (output started at /home3/keganqui/public_html/dev/wp-content/themes/optimus/functions.php:5) in /home3/keganqui/public_html/dev/wp-includes/pluggable.php on line 866

新建functions.php文件,但出现同样的错误信息:

<?php require(TEMPLATEPATH . '/inc/misc.php'); ?>
<?php require(TEMPLATEPATH . '/inc/widgets.php'); ?>
<?php require(TEMPLATEPATH . '/inc/homepage.php'); ?>
<?php
/* Include back-end */
if(is_admin()){ include TEMPLATEPATH.'/panel/panel.php'; }

/* Include front-end */
if(!is_admin()){ include TEMPLATEPATH.'/panel/panel-front.php'; }
?>

【问题讨论】:

  • 添加functions.php的前5行。
  • 我不确定 php 是否关心第 1-3 行结束 php ?&gt; 标记后的 \n 换行符。可能只有我一个人,但我会删除那些关闭和打开 &lt;?php ?&gt; 的标签,只使用一个开始 &lt;?php 和一个结束 ?&gt; 的标签。
  • 我同意 jeremy - 你应该删除所有那些不必要的打开和关闭 php 标签。我更新了我的答案以显示他在说什么......
  • 99% 的时间(带有此错误消息),文件中的某处有空格。
  • 转到这个链接你可能会得到一些简单的想法: stackoverflow.com/questions/9163261/…

标签: php wordpress


【解决方案1】:

&lt;?php 标记之前可能有空格。但正如toscho所说,请用functions.php的第一行更新您的问题

更新

你的函数文件应该是这样的:

<?php 
require(TEMPLATEPATH . '/inc/misc.php');
require(TEMPLATEPATH . '/inc/widgets.php');
require(TEMPLATEPATH . '/inc/homepage.php'); 

/* Include back-end */
if(is_admin()){ include TEMPLATEPATH.'/panel/panel.php'; }

/* Include front-end */
if(!is_admin()){ include TEMPLATEPATH.'/panel/panel-front.php'; }
?>

【讨论】:

  • 我认为根据页面上发生错误的位置您是正确的。 +1
【解决方案2】:

你的 session_start() 必须在你打开的 php 标签之后只有一次。 如果您有一个主页并包含在具有功能 e.t.c 的文件中,请不要再次将 session_start() 放入这些文件中。只需在您的主 php 文件中设置一个 session_start

【讨论】:

  • pluggable.php 中的 session_start()... 在哪里?
  • 您应该搜索它,因为有时输出错误可能会产生误导。此外,您无缘无故地有这么多的打开和关闭 php 标签。session_start 的唯一位置应该是在所有这些代码之前你的第一个开始标签'
猜你喜欢
  • 2011-10-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-12
  • 1970-01-01
相关资源
最近更新 更多