概要
feed_content_typeフィルタは、WordPressのフィードのコンテンツタイプをカスタマイズするためのフックです。このフィルタを使用すると、RSSフィードやAtomフィードなど、さまざまなフィード形式に異なるコンテンツタイプを指定できます。このフィルタは、フィードの出力を制御したいときや、特定のフィード形式に応じたレスポンスヘッダーを設定する際によく使用されます。
このフィルタがよく使われる機能の例としては以下のものがあります:
- フィードのコンテンツタイプを変更する(たとえば、アプリ専用のフォーマットなど)。
- 異なる種類のフィード(例:カスタムポストタイプ)のコンテンツタイプを指定する。
- サードパーティのサービスに合わせてフィードのコンテンツタイプを調整する。
- フィードに特定のメタデータを追加するためにコンテンツタイプを変更する。
- レスポンスヘッダーを利用したキャッシュ制御の最適化。
- さまざまなフィード形式におけるカスタムレスポンスを実現する。
- 特定のユーザーロールや権限に基づいてフィードのコンテンツタイプを変化させる。
- サイトのAPIエンドポイントを拡張するためにフィードをカスタマイズする。
構文
add_filter('feed_content_type', 'custom_feed_content_type');
パラメータ
$content_type(string): 現在のコンテンツタイプ。
戻り値
- (string): 新しいコンテンツタイプ。
関連する関数
使用可能なバージョン
- 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”コンテンツタイプに設定し、セキュリティ上の対策を講じます。