WebAmp.jp

WordPress

WordPressのRSSでカスタムフィールドの値をセットする

WebAmp.jpを作る際結構手間取ったのでメモしときます。
今回紹介するのはdescription、content:encodedそれぞれにカスタムフィールドの値をセットしてみます。

thumb_wp_rss

RSSのテンプレートがない!?

いつもどおりTwenty ThirteenやらTwelveを参考にRSSを作るか。とか安易に考えながら作業に入ると探せど探せどそれらしいものが見つからない。
検索した結果 ~/wp-admin/includes/export.phpから出力されていることが判明!
さすがに、ここをいじるのは意味不明過ぎて危険ということで色々調べてみることに。

調べてみた結果は、使用テーマ内のfunction.phpでアクションフック(add、remove)を使用して対象項目に指定値をセットしたり削除したりするらしい。

descriptionに値をセット

PHP : functino.php

	function add_to_description($content){
		$post_id = get_the_ID();

		//カスタムフィールドの値を呼び出しセット
		$setCfs = get_post_meta($post_id,'description',true);
		$description = str_replace(array("\r\n","\r","\n","
"), '', $setCfs); $content .= $description; return $content; } add_filter('the_excerpt_rss', 'add_to_description');

content:encodedに値をセット

PHP : functino.php

	function add_to_feed($content){
		$post_id = get_the_ID();
		
		//カスタムフィールドの値を呼び出しセット
		$setImage = get_post_meta($post_id,'mainImage',true);
		$mainImage = wp_get_attachment_image($setImage,'full');
		$getTitle = get_post_meta($post_id,'title',true);
		$getWysiwyg = get_post_meta($post_id,'wysiwyg',true);

		$description = get_post_meta($post_id,'description',true);
		$content .= "

".get_the_title()."

"; $content .= "

".$description."

"; $content .= "

".$mainImage."

"; if(!empty($getTitle)): $content .= "

".$getTitle."

"; endif; $content .= $getWysiwyg; return $content; } add_filter( "the_content_feed", "add_to_content" );

まとめ

このサイトではCustom Field Suiteを使用しているので上記のサンプルではCustom Field Suiteの情報呼び出しをRSSにセットしています。

とりあえず今回はシンプルだったのでこれだけですが調べてみると中々奥深いです。
また引き続き調べて書きためていきたですね。