WordPressの強みといえば、優れたブログ機能。RSSフィードは、投稿したコンテンツを購読したり、FeedlyのようなサードパーティのRSSリーダーアプリケーションに受信されるために使用します。これにより、ユーザーはどこにいても最新のコンテンツを読むことができます。とはいえ、すべてのWordPressサイトでブログ機能が使用されているわけではありません。中には、RSSフィードが全く必要ない企業サイトもあるでしょう。そこで今回は、WordPressで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です。
Perfmatters(Kinstaの社員が開発)のような有料プラグインでも実行可能です。
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にアクセスすると、以下のようなメッセージが表示されるようになります。
WordPressではまた、以下のようにウェブページのヘッダー内にRSSフィードへのリンクを生成します。さらに一歩進んで、ページのHTMLコードからこのリンクを削除することもできます。
RSSフィードへのヘッダーリンクを削除するには、以下のコードをfunctions.phpファイルに貼り付けます。
remove_action( 'wp_head', 'feed_links_extra', 3 );
remove_action( 'wp_head', 'feed_links', 2 );