WordPressのRSSフィードをすべて解説

ヘッダ画像

WordPressのRSSフィードを完全にコントロールする

WordPressではコンテンツの更新情報を知らせるために標準でRSSを出力します。
その出力方法は…
http://example.com/feed/
該当URLにfeedを加えるだけです。
単純に「フォードURLを知りたい」ということであればこれでOKです!

以下、WordPressのフィード出力の仕組みについて詳しく知りたいという方のために詳しく解説します。

WordPressではつぎの形式のFeed出力が可能です。

  1. RDF/RSS 1.0フィード
  2. RSS 0.92フィード
  3. RSS 2.0フィード
  4. Atom フィード

また、WordPressが出力するフィードにはサイトフィードやコメントフィードなど複数あり、任意のフィードを出力するためにはコントロールが必要です。

WordPressのフィードの種類

WordPressが出力できるフィードの内容は下記です。

  1. サイトフィード
  2. サイト全体のコメントフィード
  3. 記事単位のコメントフィード
  4. カテゴリーフィード
  5. タグフィード
  6. 作成者フィード
  7. 検索結果フィード

このうち、3~7についてはデフォルトの状態でヘッダ内wp_headにフィードURLが出力されます。
基本的にはヘッダのフィードURLの有無に関わらず、フィードURLへアクセスすれば、do_feed()という関数でフィードページが生成されます。
特別な事情がなければ、それ自体を停止する必要はないでしょう。

フィードURL自動出力を実装

functions.phpの「automatic-feed-links」を有効にすることで、上記1~2のフィードURLをヘッダに出力させることができます。
この場合はwp_head内にデフォルトのフィードが出力されます。

<?php add_theme_support( 'automatic-feed-links' ); ?>

一般に配布されているほとんどのWordPressテーマではあえてデフォルトの挙動に変更は加えていないものが多いです。
つまり、すべてのフィードURLが出力されている状態です。
この状態で問題がなければ、なにも設定する必要はありません。
また、デフォルトで出力される形式はRSS 2.0となります。
http://example.com/feed/

※ちなみにテーマチェックでは「automatic-feed-links」がないとエラーになるようです。

不要なフィードURLをヘッダから削除する

「automatic-feed-links」がなければ、1~2は表示されません。
しかし、前述のようにほとんどのテーマではこちらが有効になっている状態ですので、一切のフィードURLを表示しない場合はこちらを削除します。
そして、functions.phpで「feed_links_extra」というパラメータにてフックさせることで、3~7を一括で削除することができます。

<?php remove_action('wp_head', 'feed_links_extra', 3); ?>

この状態ですべてのフィードURLが出力されなくなります。

コメントフィードURLを出力しない

コンテンツの内容によってはほとんどコメントが付かない、あるいはコメント欄そのものが存在しないサイトもあるでしょう。
そのような場合はコメントフィードそのものが不要です。

個別にフィードURLを出力する

「サイトフィードURLのみ出力させる」場合は上記、デフォルトの出力を除去した上で次の4種類フィードを必要に応じて個別に出力します。

RDF/RSS 1.0フィード
<?php bloginfo('rdf_url'); ?>
出力URL→http://example.com/feed/rdf/

RSS 0.92フィード
<?php bloginfo('rss_url'); ?>
出力URL→http://example.com/feed/rss/

RSS 2.0フィード
<?php bloginfo('rss2_url'); ?>
出力URL→http://example.com/feed/

Atom フィード
<?php bloginfo('atom_url'); ?>
出力URL→http://example.com/feed/atom/

つまり、サイトフィードのみをデフォルトと同様にRSS 2.0フィードで出力させる場合は下記の手順となります。

  1. functions.phpの<?php add_theme_support( 'automatic-feed-links' ); ?>を削除
  2. functions.phpに<?php remove_action('wp_head', 'feed_links_extra', 3); ?>を追加
  3. header.phpに<link rel="alternate" type="application/rss+xml" title="<?php echo bloginfo('name'); ?>&raquo;フィード" href="<?php bloginfo('rss2_url'); ?>">を追加

コメントを残す

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



関連記事

WordPressのログインユーザー名は丸見え!? 知っていますか?WordPressのログインユーザー名はだだ漏れだという事実を...ダッシュボード乗っ取り防止のためのセ...

絶対に分かる!WordPressの子テーマ作成 WordPressでは子テーマという機能があります。既存のテーマを作成すれば、カスタマイズする際に変更したい部分だけを子...

「トップに戻る」ボタンでスマホでのユーザビリティアップ! ウェブサイト上でコンテンツを下にスクロールさせると「トップに戻る」ボタンが出現して、クリックするとビューンとページの初め...

オリジナルの403ページを表示しよう WordPressで構築したサイトのほとんどはページが見つからない場合の404ページ(page Not Found)が用...