WordPressのRSSフィードの先頭が空白になってエラーになる時の対処方法

雑な図ですみません。

原因はよく分かりませんがWordPressが出力スルRSSフィードの先頭に空行が勝手に入ってエラーになることがあります。

<?xmlの宣言は1行目に書いてくださいって怒られるんですね。これを治す方法を紹介します。とは言ってもスマートな方法ではなく粗治療です。。

feedファイルの先頭にob_end_clean();

「wp-includes」フォルダ配下にある

  • feed-rss.php
  • feed-rss2.php

の先頭に

<?php ob_end_clean(); ?>

わたしの場合はversion2.0で出力されているので、おそらくfeed-rss2.phpを修正すれば・・・ということで上手くいきました。

後ろの行のコードも合わせるとこんな感じ(後ろのコードはもともともやつ。)

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

以上です。feedに空行が入って困っている方は是非お試しを!

おまけ

ついでに表示の内容もここで設定されています。

例えば、投稿者の表示を消したければ、

<dc:creator><![CDATA[<?php the_author() ?>]]></dc:creator>

の記述を削除もしくは中身を消してあげることで可能です。

<dc:creator></dc:creator>