概要
feed_links
フィルタは、一般的なフィードへのリンクを表示するために使用されます。このフィルタは、カスタムフィードを追加したり、デフォルトのフィードリンクを変更するのに役立ちます。具体的には、以下のような機能を実装する際によく使われます。
- デフォルトの RSS フィードへのリンクを変更する
- 特定のカスタムフィードを追加する
- フィードのメタデータをカスタマイズする
- フィードに条件を付けて表示する
- 特定の投稿タイプに基づいてフィードリンクを調整する
- フィードのリンクをユーザーの権限に基づいて制御する
- サイトの多言語対応のためのフィードリンクを追加する
- クライアントにとって特別なフィードリンクを表示する
このフィルタは、主に wp_head()
の中で使用され、埋め込まれるフィードのリンクをデフォルトの形式から変更する際に役立ちます。
構文
add_filter('feed_links', 'your_callback_function');
パラメータ
- $output: 生成されたフィードリンクの HTML 文字列。
feed_links
フィルタによってこの値を変更することができます。
戻り値
- 変更されたフィードリンクの HTML 文字列。
関連する関数
使用可能なバージョン
feed_links
フィルタは、WordPress 1.5.0 以降で使用可能です。
コアファイルのパス
wp-includes/feed.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_links', 'custom_feed_links');
function custom_feed_links($output) {
// フィードリンクをカスタマイズ
$output .= '<link rel="alternate" type="application/rss+xml" title="カスタムフィード" href="' . get_bloginfo('feed') . '?custom=true" />';
return $output;
}
このコードは、デフォルトのフィードリンクにカスタムフィードリンクを追加します。
2. 特定の投稿タイプのフィードリンクを表示
add_filter('feed_links', 'add_custom_post_type_feed');
function add_custom_post_type_feed($output) {
if (is_post_type_archive('custom_post')) {
$output .= '<link rel="alternate" type="application/rss+xml" title="Custom Post Feed" href="' . get_post_type_archive_feed_link('custom_post') . '" />';
}
return $output;
}
このサンプルは、特定の投稿タイプのアーカイブページでフィードリンクを追加します。
3. 特定の条件でフィードリンクを変更
add_filter('feed_links', 'conditional_feed_links');
function conditional_feed_links($output) {
if (is_single() && 'your_post_type' == get_post_type()) {
$output .= '<link rel="alternate" type="application/atom+xml" title="Atom Feed" href="' . get_queried_object()->guid . '?format=atom" />';
}
return $output;
}
特定の投稿タイプに対する条件付きで Atom フィードを追加する例です。
4. ユーザー権限に基づくフィードリンクの制御
add_filter('feed_links', 'user_based_feed_links');
function user_based_feed_links($output) {
if (current_user_can('edit_posts')) {
$output .= '<link rel="alternate" type="application/rss+xml" title="Admin Feed" href="' . get_bloginfo('admin_feed') . '" />';
}
return $output;
}
このコードは、投稿を編集できるユーザーにのみ特別なフィードリンクを表示します。
5. 多言語対応フィードへのリンクを追加
add_filter('feed_links', 'multilingual_feed_links');
function multilingual_feed_links($output) {
if (function_exists('pll_current_language')) {
$lang = pll_current_language();
$output .= '<link rel="alternate" type="application/rss+xml" title="フィード (' . strtoupper($lang) . ')" href="' . get_bloginfo('feed') . '?lang=' . $lang . '" />';
}
return $output;
}
このサンプルは、多言語サイトで現在の言語に基づいたフィードリンクを追加します。