BLOG

カスタムフィールドの値によって、RSSフィードを作成する

2013-06-03

カスタムフィールドのキー「 rss 」 が「yes」の記事のみ、RSSフィードする際の備忘録。
愚かな私は、

<?php while( have_posts()) : the_post(); ?>
<?php if(post_custom('rss') == 'yes'): ?>
<item>
<title><?php the_title_rss() ?></title>

としていました。
これでは、まず10件RSSフィードさせる記事を持ってきてから、キー「rss」の値が「yes」のものを選別してしまうので、フィードの記事数が10件を切ることになります。
よって、上記のような振り分けでなく、記事をRSSフィードに持ってくる際に、選別する必要があります。
functions.phpに、

function rssFilter($query) {
if ($query->is_feed) {
	$args = array(
	 array(
	'key'     => 'rss',
	'value'   => 'yes'
	 )
);
$query->set( 'meta_query', $args );
}
return $query;
}

add_filter('pre_get_posts','rssFilter');

とすることにより、選別された規定数のフィード記事を吐き出してくれる訳です。

デザインや表示上の分岐は、if(~で振り分ければよいが、記事の取捨選択はクエリーを使うという勉強になりました。