WordPressのRSS/FeedのDescriptionの文字化け修正

WordPressのRSS/FeedのDescriptionが、Unicodeになって困っている方は必見です。自動抜粋の代わりに、Yoastのメタディスクリプションのデータを引っ張ってくることで、修正することができます。プラグイン「WP Multibyte Patch」で解決できない場合に是非どうぞ。
Welcome
  • RSSに抜粋文がUnicodeで出力されると抽出文字数が少なくなる
  • 特殊なケース
  • Feedの出力プログラムを改良したYoastのメタディスクリプションの出力が最良策

不具合について

日本語マルチバイト環境のRSS/Feedの自動出力の問題は、一般的にプラグイン「WP Multibyte Patch」で解消します。しかし、以下のようにUnicodeでFeedが出力されてしまうことがあるようです。(クリックで拡大します。)

WordPressの標準仕様では、抜粋文は前から110字取得してくる構造のため、Unicodeでは前半から短文になり、最後の文字が中途半端に表示されてしまいます。

解決方法

なぜUnicodeされるかは不明ですが、WordPressの自動抜粋文のロジックを抜いてしまい、新たな抜粋文を出力させるロジックを入れると解決します。

一番ラクな方法は、プラグイン「Yoast SEO」のメタディスクリプションを代わりにいれることです。

Yoastでは、各投稿のメタディスクリプションを個別に設定することができます。そして、それをPHPを使って出力させることができます。

具体的な手順は、次のページにまとめています。
YoastのメタディスクリプションをRSS/Feedに登録する方法

尚、「ALL in one SEO pack」では、メタディスクリプションが出力されないトラブルが結構あるようですので、Yoastに乗り換えてしまうことも一つの決断かもしれません。

まとめ

インターネットで調べた限り、このようなトラブルにぶつかった方は見つかりませんでした。そこで、このような解決策を作りました。ベストかどうかはわかりませんが、結果としては、Feedがきれいになってとても満足しています。RSSは、FeedリーダーやIFTTTなどの外部連携サービスに接続できる重要な箇所です。もし、同じようなトラブルでお困りでしたら、ご参考になれば幸いです。