サイトのRSSフィードが更新されないときの解決方法
サイトのRSSフィードをチェックしたらエラーを吐き出していたので修正しました。
1. エラー内容と解決方法
https://libsy.net/wp-content/uploads/2018/04/20180405_01.png
表示されたエラー
https://libsy.net/wp-content/uploads/2018/04/20180405_02.png
↑ ハイライトされた115行目に不可視文字が入っていました。web上だと見えませんが、Bracketsなどのエディタにコピペすると不可視文字が確認できました。
https://libsy.net/wp-content/uploads/2018/04/20180405_03.png
↑ web上のソースコードやWPの編集画面では確認できない
https://libsy.net/wp-content/uploads/2018/04/20180405_04.png
↑ エディタでは確認できる(上段)
記事タイトルの不可視文字を消して更新すると、フィードが配信されるようになりました。
------
2. その他のエラー解決法(今回はやらなくてよかったこと)
functions.php の余計な空行を消す
functions.phpに、<?php ?>で囲まれた部分の外に空白や空行が含まれると、WordPressから出力されるhtmlの上部に空行が挟まれるそうです。
wp-includes/feed-rss2.php等の書き換え
フィードの<?xml宣言より前に空行が挟まれる場合は、以下のPHPの2行目にob_end_clean();を挿入する。(出力のバッファリングを制限)
wp-includes/feed-rss2.php
code:feed-rss2.php
<?php
ob_end_clean();
wp-includes/feed-rss2-comments.php
code:feed-rss2-comments.php
<?php
ob_end_clean();
今回はこれが原因ではありませんでしたが、調べたので一応メモ。
(これWP更新する度に書き直さなくてはいけないから面倒そうですね)