WordPressの強みといえば、優れたブログ機能。RSSフィードは、投稿したコンテンツを購読したり、FeedlyのようなサードパーティのRSSリーダーアプリケーションに受信されるために使用します。これにより、ユーザーはどこにいても最新のコンテンツを読むことができます。とはいえ、すべてのWordPressサイトでブログ機能が使用されているわけではありません。中には、RSSフィードが全く必要ない企業サイトもあるでしょう。そこで今回は、WordPressでRSSフィードを無効にする方法をご紹介します。

RSSフィード不要のアイコン

WordPressには、デフォルトで以下のような複数のRSSフィードが組み込まれています。

http://example.com/feed/
http://example.com/feed/rss/
http://example.com/feed/rss2/
http://example.com/feed/rdf/
http://example.com/feed/atom/

また、カテゴリー、タグ、コメントなどにもRSSフィードが生成されます。

WordPressでRSSフィードを無効にする

WordPressでRSSフィードを無効にするには、以下2つの方法があります。

1. プラグインを使ってRSSフィードを無効にする

1つ目の方法は、Disable Everythingのような無料のプラグインを使用することです。このプラグインは、すべてのリクエストをリダイレクトすることで、WordPressサイトのすべてのRSS/Atomフィードとフィードリンクを無効にします。

WordPressリポジトリからダウンロードするか、WordPress管理画面の「プラグイン」>「新規追加」から検索してDisable Everythingをインストールします。有効化したら、Disable Everythingの「Settings」エリアに移動し、「Disable the RSS feed links and disable the feeds(RSSフィードのリンクとフィードを無効化)」にチェックをいれるだけでOKです。

Disable Everythingプラグインの設定
Disable Everythingプラグインの設定

Perfmatters(Kinstaの社員が開発)のような有料プラグインでも実行可能です。

PerfmattersでRSSフィードを無効化
PerfmattersでRSSフィードを無効化

2. コードを編集してRSSフィードを無効にする

プラグインをインストールしたくければ、コードを編集してRSSフィードを無効にすることも可能です。この方法を選択する場合、まずは念のためにサイトのバックアップをとり、テーマを更新しても変更が失われないようにするために子テーマを作成します。それから、子テーマのfunctions.phpファイルに以下のコードを貼り付けます。

function itsme_disable_feed() {
 wp_die( __( 'No feed available, please visit the <a href="'. esc_url( home_url( '/' ) ) .'">homepage</a>!' ) );
}

add_action('do_feed', 'itsme_disable_feed', 1);
add_action('do_feed_rdf', 'itsme_disable_feed', 1);
add_action('do_feed_rss', 'itsme_disable_feed', 1);
add_action('do_feed_rss2', 'itsme_disable_feed', 1);
add_action('do_feed_atom', 'itsme_disable_feed', 1);
add_action('do_feed_rss2_comments', 'itsme_disable_feed', 1);
add_action('do_feed_atom_comments', 'itsme_disable_feed', 1);

以上で完了です。サイトのRSSフィード、例えばdomain.com/feedにアクセスすると、以下のようなメッセージが表示されるようになります。

RSSフィードの警告
RSSフィードの警告

WordPressではまた、以下のようにウェブページのヘッダー内にRSSフィードへのリンクを生成します。さらに一歩進んで、ページのHTMLコードからこのリンクを削除することもできます。

WordPressヘッダー内のRSSフィード
WordPressヘッダー内のRSSフィード

RSSフィードへのヘッダーリンクを削除するには、以下のコードをfunctions.phpファイルに貼り付けます。

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