- オリジナルfeed用のphpをつくる
- 関数the_excerpt_rss()の部分を変える
- 関数get_post_meta(get_the_ID(), ‘_yoast_wpseo_metadesc’, true)を使う
完成版・ソースコード
WordPressの子テーマを作成し、「functions.php」と「feed-rss2.php」を新たに作成して、子テーマのディレクトリへアップロードします。
functions.php
ここでは2つの関数を定義しています。custom_feed_rss2()は、既存のRSSではなくカスタマイズしたRSS(子テーマ内のfeed-rss2.php)を読み込む関数です。そして、get_my_feed()は、Yoastのメタディスクリプションとアイキャッチ画像を取得して、RSS/Feedに出力させる関数です。
feed-rss2.php
WordPressのwp-includesフォルダ内に保存されている「feed-rss2.php」をコピーします。そして、以下の画面のようにデータの取得関数「the_excerpt_rss()」の箇所を、先ほどfunctions.phpで定義した「get_my_feed()」に変更します。
置き換え用コード
get_my_feed(get_the_ID(), '_yoast_wpseo_metadesc', true);
出力結果
以下の画像は、FireFoxでみた当サイトのFeedです。
「#SEO」の部分は、functions.php内で定義しています。RSS/FeedをIFTTTを使って、Facebookに連携させることを想定しているため、埋め込んでいます。
まとめ
WordPressを導入しておよそ1週間後、なぜかRSSの中のDescriptionの表示がUnicode化されていることに気づきました。WordPressのマルチバイト対応にはいくつか問題があることがわかり、急遽、このような変更を行いました。
どのような状況で起こるのかは不明のままですが、Yoastからメタディスクリプションのデータを取得することで、結果として、RSS自体をバージョンアップさせることに成功しましたのでよしとしました。もし、同様の現象に見舞われていらっしゃいましたら、ご参考になさってください。