WordPress Codexによるとwp_get_attachment_metadataでメディアのキャプションが取得できるっぽい。
Array
(
[width] => 2400
[height] => 1559
[file] => 2011/12/press_image.jpg
[sizes] => Array
(
[thumbnail] => Array
(
[file] => press_image-150x150.jpg
[width] => 150
[height] => 150
[mime-type] => image/jpeg
)
[medium] => Array
(
[file] => press_image-4-300x194.jpg
[width] => 300
[height] => 194
[mime-type] => image/jpeg
)
[large] => Array
(
[file] => press_image-1024x665.jpg
[width] => 1024
[height] => 665
[mime-type] => image/jpeg
)
[post-thumbnail] => Array
(
[file] => press_image-624x405.jpg
[width] => 624
[height] => 405
[mime-type] => image/jpeg
)
)
[image_meta] => Array
(
[aperture] => 5
[credit] =>
[camera] => Canon EOS-1Ds Mark III
[caption] =>
[created_timestamp] => 1323190643
[copyright] =>
[focal_length] => 35
[iso] => 800
[shutter_speed] => 0.016666666666667
[title] =>
)
)
WordPress Codexより抜粋
$metadata = wp_get_attachment_metadata( $attachment_id );
$caption = $metadata['image_meta']['caption'] ? esc_html( $metadata['image_meta']['caption'] ) : '';
echo $caption;
これでいけるはずなんだけど、なぜか取得できず。
var_dumpしてみるもは空。これはバグなのでしょうか?
どうやらget_postで取得するしかなさそうです。
$caption = ( $attachment = get_post( $post_thumbnail_id ) ) ? esc_html( $attachment->post_excerpt ) : '';
echo $caption;
参考:
http://www.webopixel.net/wordpress/779.html