WordPressでカスタム投稿をRSSに表示する方法です。
WordPressのRSSは通常ではPOST(通常の投稿)しか表示されませんが、こちらにカスタム投稿を追加する方法です。
通常の投稿にカスタム投稿を追加する
通常の投稿+カスタム投稿でRSSを配信する方法です。
方法は非常に簡単でfunctions.phpに追記します。
今回は仮でカスタム投稿『post_type1』『post_type2』があるとします。
function custom_post_rss_set( $query ) { if ( is_feed() ) { $post_type = $query->get( 'post_type' ); if ( empty( $post_type ) ) { $query->set( 'post_type', array( 'post', 'post_type1', 'post_type2' ) ); } return $query; } } add_filter( 'pre_get_posts', 'custom_post_rss_set' );
と、pre_get_postsにフックしカスタム投稿『post_type1』『post_type2』を通常の投稿(post)と一緒に取得します。
カスタム投稿のみのRSSにする
次にカスタム投稿のみのRSSを取得します。
方法は先ほどと同じくfunctions.phpに記述します。
先程のものを少々変更し、カスタム投稿『post_type1』『post_type2』のみのRSSに変更します。
function custom_post_rss_set( $query ) { if ( is_feed() ) { $post_type = $query->get( 'post_type' ); if ( empty( $post_type ) ) { $query->set( 'post_type', array( 'post_type1', 'post_type2' ) ); } return $query; } } add_filter( 'pre_get_posts', 'custom_post_rss_set' );
とします。
先ほど指定した通常の投稿(post)を取っただけですが、これでカスタム投稿のみのRSSに変更できます。
このように、arrayの中の値に取得したいpost_typeを指定することで、RSSを変更することが出来ます。