WordPressのFeedテンプレートをカスタマイズする

rss.jpgWordPressを使用した案件でちょっと困ったことが起きた。

トップページに「更新情報」として最近のエントリーを5件とか表示するのだが、リンク先をエントリー詳細ページ以外にしたいパターンもある場合はどうしたら良いか?

まぁこれ自体は、リンク先のURLを入力するカスタムフィールドを設置し、その値のある無しとかで条件分岐してやればOKなのだが、それだけではなくRSSフィードのテンプレートもカスタマイズしないといけないなぁ…と思い探してみると、無い。テンプレートが。

仕方なくWPのコアファイルというか、wp-includeフォルダのテンプレートをいじるのか…なんかヤダな…と思いもう少しグーグル先生に問うてみると、見つけました。

各種フィード用テンプレートの変更 [dogmap.jp]

「アクションフック」で既存のテンプレート(コアファイル)をremoveし、テーマフォルダに置いたカスタマイズしたテンプレートをaddする、という流れです。
wp-include フォルダにあるフィードテンプレートを流用してカスタマイズ。例として 「カテゴリー5に属する投稿の場合はリンク先をカスタムフィールドで指定したURLに、それ以外は通常通り記事のパーマリンクに」だと、こんなカンジ。

<rss version="2.0">
<省略>
<channel>
<省略>
<item>
<title><?php the_title_rss() ?></title>
<?php if ( in_category('5') ) { ?>
<link><?php echo post_custom('カスタムフィールド名'); ?></link>
<?php } else { ?>
<link><?php the_permalink_rss() ?></link>
<?php } ?>
<comments><?php comments_link(); ?></comments>
<省略>
</item>
</channel>
</rss>

フィードを別のサイトで読み込む予定だったので、このカスタマイズは必須でした。

Category CMS | WEB・ネット関連 | WordPress
Posted by masa [2010/02/05 17:12]

このエントリーをはてなブックマークに追加このエントリのはてなブックマーク数このエントリをdel.icio.usに追加このエントリをLivedoor Clipに追加このエントリをYahoo!ブックマークに追加このエントリをつぶやく

Comment / Trackback

Trackback URL : http://masalog.info/2010/02/wordpressfeed.html/trackback

Post Your Comment!

(承認されるまではコメントは表示されません。そのときはしばらく待ってください。)