概要
get_the_post_thumbnail_caption
フィルタは、投稿ページのサムネイルキャプションを取得する際に使用されます。このフィルタを使うことで、デフォルトのキャプションをカスタマイズしたり、新しい情報を追加したりできます。このフィルタは、以下のような機能実装において特によく使用されます:
- サムネイルのキャプションをカスタマイズする
- キャプションにHTMLタグを追加する
- 特定の条件に基づいてキャプションを変更する
- キャプションにメタデータを追加する
- サムネイル画像のタイトルと一貫性を持たせる
- ソーシャルメディア共有用のキャプションを作成する
- アクセシビリティ向上のためのテキストを追加する
- 開発者向けのフィルタリング機能を提供する
構文
apply_filters('get_the_post_thumbnail_caption', $caption, $post_id);
パラメータ
$caption
(string): 生成されるキャプションのテキスト。$post_id
(int): 投稿のID。
戻り値
フィルタ処理後のキャプションという文字列を返します。
関連する関数
使用可能なバージョン
このフィルタは、WordPressのバージョン 3.4 以降で利用可能です。
コアファイルのパス
wp-includes/post-thumbnail-template.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_the_post_thumbnail_caption', 'customize_thumbnail_caption');
function customize_thumbnail_caption($caption) {
return strtoupper($caption);
}
このコードは、サムネイルキャプションを大文字に変換します。
サンプル2: HTMLタグを追加する
add_filter('get_the_post_thumbnail_caption', 'add_html_to_caption');
function add_html_to_caption($caption) {
return '<strong>' . esc_html($caption) . '</strong>';
}
このコードは、キャプションを強調表示(太字)します。
サンプル3: 投稿のメタデータを追加する
add_filter('get_the_post_thumbnail_caption', 'add_metadata_to_caption', 10, 2);
function add_metadata_to_caption($caption, $post_id) {
$meta = get_post_meta($post_id, 'custom_meta_key', true);
return $caption . ' - ' . esc_html($meta);
}
このコードは、投稿のカスタムメタデータをキャプションに追加します。
サンプル4: 特定の投稿タイプのみキャプションを変更
add_filter('get_the_post_thumbnail_caption', 'conditional_caption_change', 10, 2);
function conditional_caption_change($caption, $post_id) {
if (get_post_type($post_id) === 'special_type') {
return 'Special Caption: ' . esc_html($caption);
}
return $caption;
}
このコードは、特定の投稿タイプのみキャプションを変更します。
サンプル5: キャプションの前に投稿タイトルを追加
add_filter('get_the_post_thumbnail_caption', 'prepend_title_to_caption', 10, 2);
function prepend_title_to_caption($caption, $post_id) {
$title = get_the_title($post_id);
return esc_html($title) . ': ' . esc_html($caption);
}
このコードは、キャプションの前に投稿タイトルを追加します。