WordPressには投稿記事の情報をRSSやAtomというフィード形式で配信する機能があり、RSSリーダーなどでブログの更新情報を公開することができます。

FeedlyやInoreaderなどのRSSリーダーに登録して更新情報を確認する読者もいるので、自分の記事を読んでもらうのに便利な一方、他者のサイトでフィード情報が利用される恐れもあります。
お知らせやブログなどを利用していないサイトなど、特にRSSフィードの配信が不要な場合は、この機能を停止することができますので、ここではその方法をご紹介します。
フィード配信を停止する
フィード用のアドレスにアクセスしても、その中にデータを表示しないようにするには、下記のコードを子テーマの【functions.php】に記述します。
子テーマが存在しないテーマの場合は親テーマのfunctions.phpに記述します。OPENCAGE製のテーマは専用の子テーマを用意していますので、こちらの導入をおすすめします。
追記するコード
remove_action('do_feed_rdf', 'do_feed_rdf');
remove_action('do_feed_rss', 'do_feed_rss');
remove_action('do_feed_rss2', 'do_feed_rss2');
remove_action('do_feed_atom', 'do_feed_atom');
この設定によって、フィードのURL(XMLファイル)などにアクセスしても下記のようにエラーが表示されるようになります。

フィードリンクを除去する
上記の設定でフィードの配信は停止されますが、ソースコードの<head>タグの中にはフィードへのリンクタグが挿入されています。
<link rel="alternate" type="application/rss+xml" title="○○○ » フィード" href="https://○○○.com/feed/" /> <link rel="alternate" type="application/rss+xml" title="○○○ » コメントフィード" href="https://○○○.com/comments/feed/" />
<head>タグからフィードへのリンクを除去するには、子テーマの【functions.php】に下記のコードも追記します。
追記するコード
remove_action('wp_head', 'feed_links', 2);
remove_action('wp_head', 'feed_links_extra', 3);
feed_linksではサイト全体の記事更新フィードとコメントフィード、feed_links_extraではアーカイブやカテゴリーなどの条件に応じたフィードのリンクが作成されますが、それらを除去する設定になります。
【まとめると】フィード配信を停止してリンクも除去する
上記2つの設定をまとめて記述すると下記のようになります。
//フィード配信を停止
remove_action('do_feed_rdf', 'do_feed_rdf');
remove_action('do_feed_rss', 'do_feed_rss');
remove_action('do_feed_rss2', 'do_feed_rss2');
remove_action('do_feed_atom', 'do_feed_atom');
//フィードリンクを除去
remove_action('wp_head', 'feed_links', 2);
remove_action('wp_head', 'feed_links_extra', 3);
【さらに対策するなら】404エラーを返すようにする
以上の設定でも充分ですが、直接フィードのURL(XMLファイル)にアクセスした際に、404エラーを返したいという場合は【.htaccess】ファイルに下記のコードを追記します。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{THE_REQUEST} feed [NC]
RewriteRule ^ - [L,R=404]
</IfModule>
.htaccessファイルに記述されている内容を削除してしまうと、サイトエラーを起こす場合がありますので、編集する際は注意が必要です。
以上のように設定することで、RSSフィードを完全に無効化することができます。
以上、WordPressのRSSフィードを無効化する方法のご紹介でした。





















