【WordPress】カスタム投稿タイプをRSSに含める方法

【WordPress】カスタム投稿タイプをRSSに含める方法 WordPress

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を活用することで、外部サービスとの連携や自動投稿、メール配信システムなどにも活用できるので、ぜひ導入してみてください。