ワードプレスのfeed_content_typeフィルタの使用方法・解説

概要

feed_content_typeフィルタは、WordPressのフィードのコンテンツタイプをカスタマイズするためのフックです。このフィルタを使用すると、RSSフィードやAtomフィードなど、さまざまなフィード形式に異なるコンテンツタイプを指定できます。このフィルタは、フィードの出力を制御したいときや、特定のフィード形式に応じたレスポンスヘッダーを設定する際によく使用されます。

このフィルタがよく使われる機能の例としては以下のものがあります:

  1. フィードのコンテンツタイプを変更する(たとえば、アプリ専用のフォーマットなど)。
  2. 異なる種類のフィード(例:カスタムポストタイプ)のコンテンツタイプを指定する。
  3. サードパーティのサービスに合わせてフィードのコンテンツタイプを調整する。
  4. フィードに特定のメタデータを追加するためにコンテンツタイプを変更する。
  5. レスポンスヘッダーを利用したキャッシュ制御の最適化。
  6. さまざまなフィード形式におけるカスタムレスポンスを実現する。
  7. 特定のユーザーロールや権限に基づいてフィードのコンテンツタイプを変化させる。
  8. サイトのAPIエンドポイントを拡張するためにフィードをカスタマイズする。

構文

add_filter('feed_content_type', 'custom_feed_content_type');

パラメータ

  • $content_type(string): 現在のコンテンツタイプ。

戻り値

  • (string): 新しいコンテンツタイプ。

関連する関数

feed_content_type

使用可能なバージョン

  • WordPress 2.0.0以降。

コアファイルのパス

  • wp-includes/query.php

この関数のアクションでの使用可能性

アクション 使用例
mu_plugin_loaded
registered_post_type
plugins_loaded
wp_roles_init
setup_theme
after_setup_theme
set_current_user
init
register_sidebar
wp_loaded
send_headers
parse_query
pre_get_posts
wp
template_redirect
get_header
wp_head

サンプルコード

サンプルコード1: デフォルトのフィードタイプを変更

add_filter('feed_content_type', function($content_type) {
    return 'application/json';
});

説明: デフォルトのフィードコンテンツタイプをJSON形式に変更します。

サンプルコード2: RSSフィード専用のカスタムコンテンツタイプ

add_filter('feed_content_type', function($content_type) {
    if (is_feed('rss2')) {
        return 'application/rss+xml';
    }
    return $content_type;
});

説明: RSS2フィードに対して特定のコンテンツタイプを設定します。

サンプルコード3: 特定の条件でのフィードタイプ切替

add_filter('feed_content_type', function($content_type) {
    if (is_single() && has_post_format('video')) {
        return 'video/mp4';
    }
    return $content_type;
});

説明: 単一投稿が動画フォーマットの場合、フィードのコンテンツタイプをvideo/mp4に変更します。

サンプルコード4: カスタムポストタイプのフィードタイプ変更

add_filter('feed_content_type', function($content_type) {
    if (is_post_type_archive('portfolio')) {
        return 'application/vnd.portfolio-feed+xml';
    }
    return $content_type;
});

説明: カスタムポストタイプのアーカイブページにカスタムなフィードコンテンツタイプを設定します。

サンプルコード5: サイトのフィードをセキュリティで守る

add_filter('feed_content_type', function($content_type) {
    if (is_feed()) {
        return 'application/x-unknown';
    }
    return $content_type;
});

説明: すべてのフィードを“unknown”コンテンツタイプに設定し、セキュリティ上の対策を講じます。

この関数について質問する


上の計算式の答えを入力してください