気軽に読めるPHP入門書・PHPスクリプトが動かないときの原因と対策などを紹介します。

  1. WordPressのPHP
  2. 22 view

wp_get_attachment_image_src関数の使用例

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]画像の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)を動的に組み立てたいとき

WordPressのPHPの最近記事

  1. WordPressダッシュボードのメニューを非表示にするremove_menu_page関…

  2. WordPressで中身が空のindex.phpは消しても大丈夫?

  3. WordPressのPHPでショートコードを呼び出す方法

  4. is_categoryとin_categoryの違い

  5. wp_get_attachment_image_src関数の使用例

関連記事

PAGE TOP