WordPressのコメントフィードを削除してRSSフィードだけにする

2018-02-26

automatic-feed-links が有効の場合、通常のフィードとコメントフィードのリンクタグが両方head 内に出力されますが、コメントフィードだけ要らない時。

フック1行とかで簡単にできなかったので残しておきます。

フィードの出力を無効にする

コメントフィードだけ削除ってのができないので、一旦フィードとコメントフィードの出力を無効に。


remove_action('wp_head', 'feed_links', 2);

そもそもフィードリンクタグ出力機能自体を無効にするならこちらでもok。


remove_theme_support('automatic-feed-links');

自作テーマなら単に add_theme_support('automatic-feed-links'); の記述を削除するだけでもよいです。

フィードのタグを自作してheadに出力する

次に、普通のフィードだけを出力するため、タグを自作してheadに出力させます。アクションフックを wp_head にひっかけます。

普通に書くバージョン


add_action('wp_head', function() {
  printf('<link rel="alternate" type="application/rss+xml" title="%s" href="%s">%s', get_bloginfo('name'), get_bloginfo('rss2_url'), "\n");
});

class化されたテーマの場合


class fugehoga {

    public function __construct() {
        add_action('wp_head', array($this, 'rss_link_tag'));
    }

    public function rss_link_tag() {
        printf('<link rel="alternate" type="application/rss+xml" title="%s" href="%s">%s', get_bloginfo('name'), get_bloginfo('rss2_url'), "\n");
    }
}

以上です。お疲れさまでした!