MENU

add_feed()

add_feed() は、WordPress に独自の RSS フィードを追加するための関数です。

標準の投稿フィードとは異なる特定のコンテンツのみを配信したい場合に活用できます。例えば、特定のカスタム投稿タイプ専用のフィードを作成したり、特定のカテゴリの記事だけをフィードとして提供することが可能です。

本記事では、add_feed() の基本的な使い方や応用例について解説します。

目次

機能の説明

add_feed() は、WordPress のフィード URL に新しいフィードを追加するための関数です。この関数を使うことで、デフォルトの RSS フィードとは異なるカスタマイズされたフィードを提供することができます。

使用シーン

  • 特定のカテゴリのみを含むフィードを提供したい場合
  • カスタム投稿タイプ専用のフィードを作成したい場合
  • 会員専用フィードや有料コンテンツ専用フィードを提供したい場合

シンプルなコード例

以下のコードは、custom_feed というカスタムフィードを追加する例です。

function my_custom_feed() {
    add_feed('custom_feed', 'custom_feed_callback');
}
add_action('init', 'my_custom_feed');

function custom_feed_callback() {
    get_template_part('feed', 'custom');
}

このコードでは、custom_feed という新しいフィードを作成し、feed-custom.php というテンプレートを利用してフィードの内容を生成しています。

使い方の説明

基本的な使い方

add_feed() の構文は以下の通りです。

add_feed( $feed_name, $callback_function );

引数

  • $feed_name (文字列): 追加するフィードのスラッグ
  • $callback_function (コールバック関数): フィードを出力するための関数

カスタム投稿タイプ専用のフィードを作成

以下のコードでは、カスタム投稿タイプ news 専用のフィードを作成する例を示します。

function news_custom_feed() {
    add_feed('news_feed', 'news_feed_callback');
}
add_action('init', 'news_custom_feed');

function news_feed_callback() {
    get_template_part('feed', 'news');
}

これにより、https://example.com/feed/news_feed/ という URL で feed-news.php というテンプレートを利用したフィードを配信できます。

一緒に使うことが多い関連タグ

flush_rewrite_rules()

add_feed() を追加した後に、パーマリンクの設定を更新しないと 404 エラーが発生することがあります。そのため、flush_rewrite_rules() を使ってリライトルールを更新することが推奨されます。

function my_custom_feed_with_flush() {
    add_feed('custom_feed', 'custom_feed_callback');
    flush_rewrite_rules();
}
add_action('init', 'my_custom_feed_with_flush');

追加情報で取得したい場合

get_feed_link()

追加したフィードの URL を取得するには get_feed_link() を使用できます。

echo get_feed_link('custom_feed');

想定されるトラブル

フィードが 404 エラーになる

解決方法

  • flush_rewrite_rules() を実行してリライトルールを更新する。
  • WordPress の管理画面で「パーマリンク設定」を開いて「変更を保存」をクリックする。

フィードの内容が空になる

解決方法

  • custom_feed_callback() 内で適切に header('Content-Type: application/rss+xml; charset=UTF-8'); を設定する。
  • get_template_part() を使用する際に正しいテンプレートが存在することを確認する。

Q&A

add_feed() で追加したフィードの URL はどのように確認できますか?

get_feed_link('custom_feed') を使用すると確認できます。

フィードの内容を変更したい場合はどうすればよいですか?

get_template_part() を使って専用のテンプレートを作成し、適宜カスタマイズしてください。

add_feed() を削除するにはどうすればよいですか?

remove_action('init', 'my_custom_feed'); を実行すると削除できます。

まとめ

add_feed() を使うことで、WordPress にカスタムフィードを追加できます。

特定の投稿タイプやカテゴリ専用のフィードを作成する際に便利です。

ただし、リライトルールの更新が必要になるため、flush_rewrite_rules() の実行を忘れないようにしましょう。

よかったらシェアしてね!
  • URLをコピーしました!

コメント

コメントする

This site uses Akismet to reduce spam. Learn how your comment data is processed.

目次