概要
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);
}
このコードは、キャプションの前に投稿タイトルを追加します。