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

概要

single_term_titleフィルタは、タクソノミー名を表示する際にその出力を変更するために使用されます。具体的には、カテゴリやタグなどのタクソノミーの名前をカスタマイズすることができます。このフィルタは、デフォルトのタクソノミー名を変更したり、条件に応じて異なる出力を提供したりする場合に便利です。以下は、このフィルタがよく使われる場面の例です:

  1. タクソノミー名の前にカスタムテキストを追加
  2. タクソノミー名のフォーマットを変更
  3. 別のタクソノミーの名前を出力
  4. 特定の条件に基づいてタクソノミー名を変える
  5. タクソノミー名にHTMLタグを追加
  6. 原則として英語のタクソノミー名を他言語に翻訳
  7. SEO対策のためにタクソノミー名を変更
  8. タクソノミーが空の場合に代替テキストを表示

構文

add_filter( 'single_term_title', 'your_function_name', 10, 2 );

パラメータ

  • $term : 現在のタクソノミーのタームオブジェクト。
  • $term_id : 現在のタームのID。

戻り値

変更されたタクソノミー名の文字列。

関連する関数

filter_name

使用可能なバージョン

すべてのバージョンで使用可能。

コアファイルパス

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( 'single_term_title', 'add_custom_text_to_term_title', 10, 2 );
function add_custom_text_to_term_title( $term_title, $term_id ) {
    return 'Custom Text: ' . $term_title;
}

このコードはタクソノミー名の前に「Custom Text: 」というテキストを追加します。

2. タクソノミー名を大文字に変更する

add_filter( 'single_term_title', 'uppercase_term_title' );
function uppercase_term_title( $term_title ) {
    return strtoupper( $term_title );
}

このコードはタクソノミー名をすべて大文字に変換します。

3. 特定のタームIDの場合のみ名前を変更する

add_filter( 'single_term_title', 'custom_term_title_for_specific_id', 10, 2 );
function custom_term_title_for_specific_id( $term_title, $term_id ) {
    if ( $term_id == 123 ) {
        return 'Special Title';
    }
    return $term_title;
}

このコードは、タームIDが123の場合にのみ「Special Title」に変更します。

4. タクソノミー名にHTMLタグを追加

add_filter( 'single_term_title', 'add_html_to_term_title' );
function add_html_to_term_title( $term_title ) {
    return '<strong>' . esc_html( $term_title ) . '</strong>';
}

このコードはタクソノミー名を強調表示するために、HTMLの<strong>タグで囲みます。

5. タクソノミー名が空の場合に代替テキストを表示

add_filter( 'single_term_title', 'replace_empty_term_title', 10, 2 );
function replace_empty_term_title( $term_title, $term_id ) {
    if ( empty( $term_title ) ) {
        return 'No title available';
    }
    return $term_title;
}

このコードはタクソノミー名が空の場合に「No title available」と表示します。

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


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