WordPressではデフォルトで投稿(post)のみがRSSフィードに含まれます。しかし、カスタム投稿タイプを使ってサイトを構築している場合、それらの投稿もRSSに含めたいケースがあるでしょう。この記事では、カスタム投稿タイプをRSSフィードに含める方法について詳しく解説します。
なぜカスタム投稿タイプがRSSに含まれないのか
WordPressのRSSフィード(例:https://example.com/feed/)では、標準ではpostタイプの投稿のみが出力対象となります。pageやcustom_post_typeといったカスタム投稿タイプは、特別な指定をしない限りフィードに含まれません。
これは、pre_get_postsアクションがRSSフィードにも影響するため、条件を追加することでカスタマイズが可能です。
カスタム投稿タイプをRSSに含める基本的なコード
以下のコードをfunctions.phpに追加することで、指定したカスタム投稿タイプをRSSフィードに含めることができます。
function add_custom_post_types_to_rss($query) {
if ($query->is_feed() && $query->is_main_query()) {
$post_types = array('post', 'custom_post_type'); // 対象の投稿タイプを追加
$query->set('post_type', $post_types);
}
}
add_action('pre_get_posts', 'add_custom_post_types_to_rss');
- is_feed():RSSフィードであるかを判定
- is_main_query():メインクエリであるかを判定(管理画面などへの影響を防ぐ)
- post_typeにカスタム投稿タイプを配列形式で追加
複数のカスタム投稿タイプを含めたい場合
複数の投稿タイプをフィードに出力したい場合は、配列に追加していくだけで対応可能です。
$query->set('post_type', array('post', 'news', 'event', 'blog'));
このようにすれば、newsやeventといったカスタム投稿タイプもRSSに含まれるようになります。
フィードURLをカスタム投稿タイプ専用にしたい場合
もし「カスタム投稿タイプ専用のRSS」を作成したい場合は、次のようなURLでアクセスできます。
https://example.com/feed/?post_type=custom_post_type
この方法でカスタム投稿タイプ専用のRSSフィードを取得することもできます。外部サービスでこのフィードを使いたいときにも便利です。
まとめ
カスタム投稿タイプを使用しているWordPressサイトでは、RSSフィードの対応も忘れてはいけません。
functions.phpに数行のコードを追加するだけで、カスタム投稿タイプをRSSに含めることができ、情報発信の幅を広げることが可能になります。
RSSを活用することで、外部サービスとの連携や自動投稿、メール配信システムなどにも活用できるので、ぜひ導入してみてください。