スマートフォンやhtml5+CSS3など新技術に四苦八苦。jQuery、AjaxなどJavaScriptも難しいですね。そんなWebに悩む人のネタ帳です。

WordPressでフィードのテンプレートをカスタマイズする

update : 2014/06/23

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」など他のフォーマットのフィードも、テンプレート化してカスタマイズすることができます。

フィードをカスタマイズすることなどほとんどないと思いますが、いざというときには有効な方法です。

B!

Comment

Comment Form

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

Monthly Archives