WordPressでは、アイキャッチにしても添付画像にしても、メディアとして登録されます。
で、メディアには以下のような情報を記録できます。少なくとも私のWP環境では。
- タイトル
- キャプション
- 代替テキスト
- 説明
- Media Tags
で、今回アイキャッチ画像について、これらの情報を取得したかったのでやってみました。
要約すると以下のような流れです。
- アイキャッチ画像のIDを取得する。(
get_post_thumbnail_id()
) - 投稿タイプ「attachment」としてのPOSTtデータを取得する(
get_post()
) - 取得したPOSTデータから好きなように料理する
$thumb_id = get_post_thumbnail_id( get_the_ID() ); $thumb_post = get_post($thumb_id); //キャプションを取得 $caption = $thumb_post->post_excerpt; //「説明」を取得 $content = $thumb_post->post_content;
ただし、この方法では代替テキストが取得できないみたい。(正直「え?」って感じですが)代替テキストは代替なのだから取得するな、ということ?
代替テキストはget_post_meta()
を使って取得できました。
$post_meta = get_post_meta( $thumb_id ); $alt = $meta['_wp_attachment_image_alt'][0];
これ、もっと簡単な方法がありそうだけども…。調べる余力がないので、あしからず。
今回はアイキャッチ画像に絞った話でしたが、アイキャッチ画像に限らずメディアのIDさえわかれば情報はすべて取得できますね。