WordPress RSSのカスタマイズ フィード内のコメントのみ消す

google+ はてなブックマーク
2014年2月24日5:54 PM|WordPress テーマ

WordPressのヘッダーにある3つのRSS。
投稿記事のRSSは必要だけど、コメントのRSS feed等は消してしまいたい、という場合。

大抵のテーマで表示されているのは以下の3つ。
・投稿記事
・コメント
・投稿ページごとのコメント

HTMLの<head>内には以下のように書かれている。
例)

<link rel="alternate" type="application/rss+xml" title="ブログタイトル &raquo; フィード" href="http://honyanoya.net/feed/" /> (投稿記事のfeed)

<link rel="alternate" type="application/rss+xml" title="ブログタイトル &raquo; コメントフィード" href="http://honyanoya.net/comments/feed/" /> (コメントのfeed)

<link rel="alternate" type="application/rss+xml" title="ブログタイトル &raquo; 記事名 のコメントのフィード" href="http://honyanoya.net/category/22/feed/" /> (投稿ページごとのコメントfeed)

()の文字は判りやすいように書き足しています。

その中で消したいものによって2つの方法がある。

1.投稿ページごとのコメントfeedを消す
2.投稿ページごとのコメントfeedとコメントのfeedを消して、投稿のfeedのみ表示する

1.投稿ページごとのコメントfeedを消す

太字の3番目

<link rel="alternate" type="application/rss+xml" title="ブログタイトル &raquo; フィード" href="http://honyanoya.net/feed/" />

<link rel="alternate" type="application/rss+xml" title="ブログタイトル &raquo; コメントフィード" href="http://honyanoya.net/comments/feed/" />

<link rel="alternate" type="application/rss+xml" title="ブログタイトル &raquo; 記事名 のコメントのフィード" href="http://honyanoya.net/category/22/feed/" />

を削除するには、テーマファイルの中のfunctions.phpを修正する。

functions.php内

     add_theme_support(‘automatic-feed-links’);

の下に
remove_action(‘wp_head’, ‘feed_links_extra’, 3);
を追加し

     add_theme_support(‘automatic-feed-links’);
     remove_action(‘wp_head’, ‘feed_links_extra’, 3);

にする。

参考サイト:
WordPressがはき出すRSSフィードを制御する方法 | CreaMo!-クリーモ!-クリエイティブをMotto!集めるブログ

2.投稿のfeedのみ表示する

太字の2番目3番目

<link rel="alternate" type="application/rss+xml" title="ブログタイトル &raquo; フィード" href="http://honyanoya.net/feed/" />

<link rel="alternate" type="application/rss+xml" title="ブログタイトル &raquo; コメントフィード" href="http://honyanoya.net/comments/feed/" />

<link rel="alternate" type="application/rss+xml" title="ブログタイトル &raquo; 記事名 のコメントのフィード" href="http://honyanoya.net/category/22/feed/" />

をを削除するのは、上と同じ方法では無理らしい。

なのでfunctions.phpですべてを消し、header.php内の表示したいfeedのみ書くようにする。

上で修正したfunctions.php

     add_theme_support(‘automatic-feed-links’);
     remove_action(‘wp_head’, ‘feed_links_extra’, 3);

の部分を

     /*add_theme_support(‘automatic-feed-links’);*/
     remove_action(‘wp_head’, ‘feed_links_extra’, 3);

/*add_theme_support(‘automatic-feed-links’);*/をコメントアウトする。

ここでは、後で戻せるようにコメントアウトで書いているけど、
今後一切いらない、という場合は削除してしてしまってもいいかも。

そしてテーマ内の<head>が書かれている別ファイル(大抵header.php)に

header.php 

<link rel="alternate" type="application/rss+xml" title="RSS" href="<?php bloginfo(‘rss2_url’); ?>" />

を追加すると、投稿記事のfeedだけ表示されるようになる。

ちなみに上に追加したのはRSS2.0のfeed。

RSS2.0、RSS、Atomの3つを追加する時は以下のように書きます。

<link rel="alternate" type="application/rss+xml" title="RSS 2.0" href="<?php bloginfo(‘rss2_url’); ?>" />
<link rel="alternate" type="text/xml" title="RSS .92" href="<?php bloginfo(‘rss_url’); ?>" />
<link rel="alternate" type="application/atom+xml" title="Atom 0.3" href="<?php bloginfo(‘atom_url’); ?>" />

基本的に投稿のfeedだけあればいいと思うのだけど。
元々がブログとしてのシステムだから、コメントfeedもあるのだろうなー。

でも、コメントのfeed情報って、利用方法が判らなかったりする。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です