ワードプレスのRSSフィードから特定の投稿を除外する方法

ワードプレスのRSSフィードから特定の投稿を除外する方法について解説します。

RSSフィードに流したくない記事がある

ブログ運営を続けていると、以下のような、特定の投稿をRSSフィードに流したくないというケースが出てくる可能性があります。

  • サイト運営メモ
  • まとめ記事
  • 再利用記事

        このRSSフィードから特定の投稿を除外する方法は数行のコードを追加するだけで簡単に実現できます。

        RSSフィードから特定の投稿を除外する方法

        それでは、以下、RSSフィードから特定の投稿を除外する方法について解説します。

        編集するファイル

        今回編集するファイルはfunctions.phpになります。

        たいていのテーマでは、子テーマにfunctions.phpが用意されているはずなので、親テーマではなく子テーマのfunctions.phpを編集するようにしましょう。

        子テーマにない場合は親テーマのfunctions.phpを編集します。

        以下のコードをfunctions.phpの一番下に追加します。

        除外したい投稿が1つの場合

        除外したい投稿が1つの場合のコードは以下になります。

        /////////////////////////
        //RSS投稿ID除外
        /////////////////////////
        
        function rssfilter($query) {
            if ($query->is_feed) {
                $query->set('post__not_in', array(1));
            }
            return $query;
        }
        add_filter('pre_get_posts','rssfilter');
        

        投稿IDが1の記事を除外するという意味です。

        除外したい投稿が複数の場合

        除外したい投稿が複数の場合のコードは以下になります。

        /////////////////////////
        //RSS投稿ID除外
        /////////////////////////
        
        function rssfilter($query) {
            if ($query->is_feed) {
                $query->set('post__not_in', array(1, 2, 3, 4, 5));
            }
            return $query;
        }
        add_filter('pre_get_posts','rssfilter');
        

        投稿IDが1、2、3、4、5の記事を除外するという意味です。

        投稿IDの調べ方

        管理画面の「投稿一覧」で、該当の投稿にカーソルを合わせたときに、画面下に表示されるURLの”post=●●”の部分の数字が投稿IDになります。

        応用

        特定の投稿IDに加えて、特定のカテゴリーやタグも除隊したい場合のコードは以下になります。

        /////////////////////////
        //RSS投稿ID、カテゴリー、タグ除外
        /////////////////////////
        
        function rssfilter($query) {
            if ($query->is_feed) {
        
                // 投稿IDを除外
                $query->set('post__not_in', array(1, 2, 3, 4, 5));
        
                // カテゴリーを除外
                $query->set('category__not_in', array(10, 20, 30));
        
                // タグを除外
                $query->set('tag__not_in', array(100, 200, 300));
        
            }
            return $query;
        }
        add_filter('pre_get_posts','rssfilter');
        

        投稿IDが1、2、3、4、5、カテゴリーIDが10、20、30、タグIDが100、200、300の記事を除外するという意味です。

        確認

        サイトURL/rss(【例】https://○○○.com/rss)でRSSが確認できるので、該当の投稿が消えていることを確認しましょう。

        おわりに

        以上、ワードプレスのRSSフィードから特定の投稿を除外する方法について解説でした。

        何らかの理由で特定の記事をRSSフィードに流したくない場合は参考にしてみてください。