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

概要

get_term_feed_linkフィルタは、タームフィードのURLを取得する際に使用されるフィルタです。このフィルタを使用することで、タームフィードのリンクをカスタマイズしたり、特定の条件に基づいて異なるURLを返すことができます。多くの場合、テーマやプラグインの開発で役立ち、次のような機能を実装する際によく使われます。

  1. タームに基づくRSSフィードの生成
  2. 外部サービスとの統合
  3. ナビゲーションメニューにカスタムフィードへのリンクを追加する
  4. 特定の条件に応じたフィードのカスタマイズ
  5. SEO対策のためのフィードURLの変更
  6. フィードのバージョン管理
  7. カスタムポストタイプのフィードを提供する
  8. カスタムエンドポイントの作成

構文

apply_filters( 'get_term_feed_link', string $feed_link, WP_Term $term, string $feed );

パラメータ

  • feed_link (string) – デフォルトのフィードURL
  • term (WP_Term) – 対象のタームオブジェクト
  • feed (string) – フィードの種類(例: ‘rss2’, ‘atom’など)

戻り値

戻り値は、フィルタを適用した後のタームフィードのURL(string型)です。

関連する関数

こちらに関連する関数があります。

このフィルタを使用可能なバージョン

  • WordPress 2.3以上

コアファイルのパス

wp-includes/taxonomy.php

サンプルコード

サンプルコード 1: タームフィードのURLをカスタマイズ

add_filter( 'get_term_feed_link', 'custom_feed_link', 10, 3 );

function custom_feed_link( $feed_link, $term, $feed ) {
    if ( $term->taxonomy === 'category' ) {
        // カスタムフィードURLを設定
        return 'https://example.com/custom-feed/?cat=' . $term->term_id;
    }
    return $feed_link;
}

このコードは、カテゴリータームのフィードリンクをカスタムのURLに変更します。

サンプルコード 2: YAML形式のフィードを追加

add_filter( 'get_term_feed_link', 'add_yaml_feed_link', 10, 3 );

function add_yaml_feed_link( $feed_link, $term, $feed ) {
    if ( $feed === 'yaml' ) {
        return 'https://example.com/feeds/yaml/?term=' . $term->slug;
    }
    return $feed_link;
}

このコードは、”yaml”という形式のフィードをタームに対して追加します。

サンプルコード 3: フィードパラメータを追加

add_filter( 'get_term_feed_link', 'add_parameters_to_feed', 10, 3 );

function add_parameters_to_feed( $feed_link, $term, $feed ) {
    return add_query_arg( 'source', 'custom', $feed_link );
}

このコードは、全てのフィードURLにsourceパラメータを追加します。

サンプルコード 4: 特定のタームのフィードをブロック

add_filter( 'get_term_feed_link', 'block_specific_feed', 10, 3 );

function block_specific_feed( $feed_link, $term, $feed ) {
    if ( $term->slug === 'no-feed' ) {
        return false; // フィードを提供しない
    }
    return $feed_link;
}

このコードは、スラッグが”no-feed”のタームのフィードを無効にします。

サンプルコード 5: フィードの形式を統一

add_filter( 'get_term_feed_link', 'unify_feed_format', 10, 3 );

function unify_feed_format( $feed_link, $term, $feed ) {
    return str_replace( 'http', 'https', $feed_link ); // HTTPをHTTPSに置換
}

このコードは、全てのフィードリンクをHTTPSに統一します。

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

アクション 使用可能性
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

非推奨または削除されたバージョン

特に非推奨または削除されたバージョンはありません。

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


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