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

概要

the_post_thumbnail_captionフィルタは、投稿ページのサムネイルキャプションを表示する際にその内容を変更するために使用されます。このフィルタを使用することで、サムネイルキャプションのフォーマットや内容を自分のニーズに合わせてカスタマイズできます。よく使われる機能は以下の通りです。

  1. キャプションのテキストの変更
  2. HTMLタグの追加や削除
  3. スタイルの適用
  4. キャプションに動的なデータの挿入
  5. 言語ごとのキャプションの翻訳
  6. カスタムフィールドを用いたキャプションの生成
  7. サムネイルが表示されない場合の代替テキストを設定
  8. SEO対策としてのキャプションの最適化

このフィルタの構文は以下の通りです:

apply_filters( 'the_post_thumbnail_caption', $caption, $post_id );

パラメータ

  • $caption: 変更するキャプションのテキスト。
  • $post_id: サムネイルが関連付けられている投稿のID。

戻り値

  • 変更されたキャプションのテキスト。

関連する関数

使用可能なバージョン

  • WordPress 4.0以降で使用可能です。

コアファイルのパス

  • wp-includes/media.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( 'the_post_thumbnail_caption', 'custom_caption_function', 10, 2 );

function custom_caption_function( $caption, $post_id ) {
    return 'カスタムキャプション: ' . $caption;
}

このコードは、サムネイルキャプションの前に「カスタムキャプション: 」というテキストを追加します。引用元: https://developer.wordpress.org/reference/functions/add_filter/

サンプルコード2: HTMLタグを追加する

add_filter( 'the_post_thumbnail_caption', 'add_html_to_caption', 10, 2 );

function add_html_to_caption( $caption, $post_id ) {
    return '<strong>' . $caption . '</strong>';
}

このコードは、サムネイルキャプションを太字にします。引用元: https://developer.wordpress.org/reference/functions/add_filter/

サンプルコード3: 他のメタデータをキャプションに追加する

add_filter( 'the_post_thumbnail_caption', 'add_metadata_to_caption', 10, 2 );

function add_metadata_to_caption( $caption, $post_id ) {
    $year = get_the_date('Y', $post_id);
    return $caption . ' (投稿年: ' . $year . ')';
}

このコードは、サムネイルキャプションの後にその投稿の年を追加します。引用元: https://developer.wordpress.org/reference/functions/add_filter/

サンプルコード4: 言語に応じたキャプションを生成する

add_filter( 'the_post_thumbnail_caption', 'localized_caption', 10, 2 );

function localized_caption( $caption, $post_id ) {
    if (ICL_LANGUAGE_CODE == 'es') {
        return 'Descripción en español: ' . $caption;
    }
    return $caption;
}

このコードは、PolylangやWPMLを使用している場合に、スペイン語のキャプションを追加します。引用元: https://developer.wordpress.org/reference/functions/add_filter/

サンプルコード5: NULL値に対する代替テキストを設定する

add_filter( 'the_post_thumbnail_caption', 'fallback_caption', 10, 2 );

function fallback_caption( $caption, $post_id ) {
    return $caption ? $caption : 'デフォルトキャプション';
}

このコードは、もしキャプションがNULLの場合に「デフォルトキャプション」と表示します。引用元: https://developer.wordpress.org/reference/functions/add_filter/

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


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