date. 2013/5/17

category. WordPress

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を変更することが出来ます。

参考サイト

関連記事