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

概要

get_edit_term_linkフィルタは、特定のタームの編集ページURLを取得する際に使用され、さまざまなプラグインやテーマでのカスタマイズを容易にします。このフィルタを利用することで、タームの編集リンクを動的に変更・拡張することが可能となり、以下のような機能を実装する場合に役立ちます。

  1. タームの編集リンクにカスタムパラメータを追加する
  2. ユーザーの権限に応じて編集リンクを変更する
  3. 特定の条件下でタームの編集ページへリダイレクトする
  4. タームに関連するメタ情報をURLに含める
  5. タームの編集が行える場合の特定のメッセージを表示する
  6. マルチサイト環境でのURLを調整する
  7. タームの分類に応じた特定のスタイルやクラスを追加する
  8. 外部システムとの連携のためにURLを構築する

構文

apply_filters( 'get_edit_term_link', $url, $term_id, $taxonomy );

パラメータ

  • $url: ターム編集ページの基本URL(文字列)
  • $term_id: タームのID(整数)
  • $taxonomy: タクソノミーのスラッグ(文字列)

戻り値

  • フィルタが適用された後のターム編集ページのURL(文字列)

関連する関数

使用可能なバージョン

  • WordPress 3.0以降

コアファイルのパス

  • wp-includes/taxonomy.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( 'get_edit_term_link', function( $url, $term_id, $taxonomy ) {
    return add_query_arg( 'custom_param', 'value', $url );
}, 10, 3 );

このサンプルコードは、ターム編集リンクにcustom_paramというクエリパラメータを追加します。

サンプルコード2: 権限に応じてURLを変更する

add_filter( 'get_edit_term_link', function( $url, $term_id, $taxonomy ) {
    if ( ! current_user_can( 'manage_terms' ) ) {
        return '#'; // 権限がない場合、リンクを無効化
    }
    return $url;
}, 10, 3 );

このコードは、ユーザーがタームを管理する権限を持たない場合、ターム編集リンクを#に置き換えます。

サンプルコード3: カスタムスタイルを追加する

add_filter( 'get_edit_term_link', function( $url, $term_id, $taxonomy ) {
    return str_replace( '<a', '<a class="custom-class"', $url );
}, 10, 3 );

このコードでは、生成されたリンクにカスタムクラスcustom-classを追加します。

サンプルコード4: URLをリダイレクトする

add_filter( 'get_edit_term_link', function( $url, $term_id, $taxonomy ) {
    if ( some_condition_check() ) {
        return home_url( '/custom-edit-page/' ); // 条件に応じてカスタムページにリダイレクト
    }
    return $url;
}, 10, 3 );

このサンプルは、特定の条件に基づいてタームの編集ページを異なるURLにリダイレクトします。

サンプルコード5: URLをコンディションに応じて変更

add_filter( 'get_edit_term_link', function( $url, $term_id, $taxonomy ) {
    if ( 'category' === $taxonomy ) {
        return str_replace( 'wp-admin/', 'admin/', $url ); // カテゴリーの場合、URLを変更する
    }
    return $url;
}, 10, 3 );

このコードでは、タクソノミーがカテゴリーの場合に、管理者リンクの一部を変更します。

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


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