WordPress 標準の「メディア」の「キャプション」が取得できなくて2分ぐらいハマりました。
「メディア」にアップロードしたファイル(主に画像を扱うと思います)には
- 代替テキスト(※画像の場合のみ)
- タイトル
- キャプション
- 説明
という入力欄が用意されています。
「画像の下にキャプションを表示したい」という場合、いつもは『代替テキスト』を使っているのですが『キャプション』を使う場合はどうするのか知らず。
『代替テキスト』の場合は以下のような感じ。
<?php
// 画像 ID を取得
$img_id = get_post_thumbnail_id();
// 画像の『代替テキスト』を取得
$text_caption = get_post_meta($img_id, '_wp_attachment_image_alt', true);
『キャプション』の場合は get_post_meta() ではなく、get_post() を使います。
<?php
// 画像 ID を取得
$img_id = get_post_thumbnail_id();
// 画像の『キャプション』を取得
$text_caption = get_post($img_id)->post_excerpt;
画像の添付ファイルのページ(post)の「抜粋」って扱いっぽいですね。なるほど。
その他、タイトルなどの取得方法は以下がわかりやすかったです。