wp_get_attachment_image_src関数を使うと、アイキャッチ画像に関する情報(URLやサイズなど)を取得することができます。
<?php $data = wp_get_attachment_image_src( get_post_thumbnail_id($post->ID), 'medium'); print_r($data); ?>
実行結果
Array
(
[0] => http://…略…/wp-content/uploads/2014/07/fot0022-054-300×199.jpg
[1] => 300
[2] => 199
[3] => 1
)
(
[0] => http://…略…/wp-content/uploads/2014/07/fot0022-054-300×199.jpg
[1] => 300
[2] => 199
[3] => 1
)
戻り値の配列には次のような情報が含まれます。
- [0]画像のURL
- [1]画像の幅
- [2]画像の高さ
- [3]リサイズされているかどうか
wp_get_attachment_image_src関数では、次のように取得するアイキャッチ画像のIDやサイズを指定することができます。
wp_get_attachment_image_src(添付ファイルID, サイズ);
添付ファイルIDはアイキャッチ画像に割り当てられたID(wp_postsテーブルのIDフィールド)ですが、手動で指定するのは現実的ではありません。現在の投稿のアイキャッチ画像は上記のコードのようにget_post_thumbnail_id($post->ID)で取得することができます。
サイズは次のような値を指定できます。省略した場合はthumbnailになります。
- thumbnail
- medium
- large
- full
- array(100, 100) — 幅と高さを指定する場合
新着記事3件のアイキャッチ画像のURLを取得する
新着記事3件のアイキャッチ画像のURLを取得する例は次のようになります。$data[0]の部分がURLです。便宜上、箇条書きにしてありますが、スライドショーなどに動的に画像ファイルのURLを追加する場合などの参考にしてください。
<?php $query = new WP_Query( array( 'post_type' => 'post', 'posts_per_page' => 3, ) ); if ( $query->have_posts() ) : ?> <ul> <?php while ( $query->have_posts() ) : $query->the_post(); $data = wp_get_attachment_image_src( get_post_thumbnail_id($post->ID), 'full'); ?> <li><?php echo $data[0]; ?></li> <?php endwhile; ?> </ul> <?php endif; wp_reset_postdata(); ?>
wp_get_attachment_image_src関数の活用例
どのような場面でwp_get_attachment_image_src関数が利用されているか、具体的なコードは省略しますが、事例をあげておきます。
- 管理画面に「アイキャッチ画像」の項目を追加したいとき
- スライドショーに動的に画像URLを追加したいとき
- 画像の幅と高さを取得して表示サイズを調整したいとき
- 画像URLを取得してCSS(background)を動的に組み立てたいとき