WordPressで投稿した記事をRSSフィードで配信することができます。
例えばこのブログだと以下のリンクからフィードを取得することができます。
https://helog.jp/feed/
このフィードのテンプレートを修正しようと思ったのですが、なんとWordpressはデフォルトでフィードのテンプレートが存在しません。
例えばRSS2をフォーマットを編集する場合、直接インクルードファイルを編集すればカスタマイズは可能のようです。
.../wp-include/feed-rss2.php
しかし、アップデートの際の影響も考慮して、ここではなるべくテンプレート内でカスタマイズを完結したいので、以下のサイトを参考にフィードをテンプレート化します。
各種フィード用テンプレートの変更 : dogmap.jp
テンプレートファイルを用意する
まず、ベースとして先ほどのファイルを、現在使用中のテンプレートフォルダにコピーします。
.../wp-include/feed-rss2.php
上記ファイルを以下のフォルダにコピーします。
.../wp-content/themes/(現在使用中のテンプレートフォルダ)/feed-rss2.php
コピーしたファイルを目的に応じて自由にカスタマイズします。
今回はフィードテンプレートの中身については割愛します。
テンプレートのフィードを参照するようにアクションを用意する
テンプレート内「functions.php」に以下のように記述します。
remove_filter('do_feed_rss2', 'do_feed_rss2', 10); function custom_feed_rss2(){ $template_file = '/feed-rss2.php'; load_template(get_template_directory() . $template_file); } add_action('do_feed_rss2', 'custom_feed_rss2', 10);
はじめに「remove_filter」でデフォルトのフィルタを削除します。
「add_action」でアクション関数「custom_feed_rss2」を登録することで、テンプレートの参照先を上書きするイメージです。
アクション関数内の処理では「load_template」でテンプレートの参照先をセットしているだけです。
参考サイトにあるように「RDF」や「ATOM」など他のフォーマットのフィードも、テンプレート化してカスタマイズすることができます。
フィードをカスタマイズすることなどほとんどないと思いますが、いざというときには有効な方法です。