この記事は2年以上前の投稿になります。
記載された情報が古くなっている可能性がございますので十分ご注意ください。
記載された情報が古くなっている可能性がございますので十分ご注意ください。
WordPress の RSS が知らぬ間にエラーしていることがあります。
記事本文にUTF8以外の文字が含まれていことで下記のようなエラーを引き起こします。
もちろん、コピー&ペーストなどで入ってしまうものなら削除して回避することも出来ますが、テーマやプラグインのどこかでマルチバイトの処理が正しく行われない場合では、登録した記事本文に問題が無くとも発生してしまうようです。
外部サービスに RSS を読み込ませているような場合は、知らぬ間にエラーして通知できていない等、大変困ります。
本来は根本的な原因を解決すべきなのでしょうが、特定するにも時間が必要なので、取り急ぎエラーを回避するための方法を覚えておきましょう。
お決まりの functions.php に下記を追加すればOKです。
※私の場合は「functions.php」ではなく「Code Snippets」)で導入してます。
function remove_controlcharacter($content) { return preg_replace('/[^\P{Cc}\n\r]+/u', '', $content); } add_filter('the_excerpt_rss', 'remove_controlcharacter'); add_filter('the_content_feed', 'remove_controlcharacter');
※上記の正規表現はPHP5.1.0以降で有効な表記です。
今回は特別に上記をプラグイン化してみました。良かったら使ってください。
□ RSSエンコードエラー対策(制御コード除去)プラグイン
> evade_feed_encoding_error.zip (3.27 KB)
※このプラグインは下記のバナーにもある「PHPファイル難読化ツール」で難読化されています。