wp_get_attachment_image()
参照:WordPress Codex-wp_get_attachment_image()
構文
wp_get_attachment_image ( ①$attachment_id[必須], ②$size[オプション], ③$icon[オプション] , ④$attr[オプション] );
wp_get_attachment_image()の詳細
動 作
添付ファイルが存在する場合。
→img要素を返す。
添付ファイルが存在しない場合。
→空の文字列を返す。
返り値
添付ファイルが存在する場合。
→img要素を返す。
添付ファイルが存在しない場合。
→空の文字列を返す。
引 数
①$attachment_id[必須]
(整数)初期値:なし
添付ファイルのID
②$size[オプション]
(文字列|配列) 初期値:’thumbnail’
画像の大きさ。キーワード文字列(thumbnail,medium,large,full)
③$icon[オプション]
(真偽値)初期値 : ’False’
添付ファイルを表すメディアアイコンを使用する。
1(True)-使用する
2(False)-使用しない
④$attr[オプション]
(文字列|配列)
アイキャッチ画像を表示する際のimgタグ中に記述される属性と値を配列により設定。
<?php $default_attr = array( 'src' => $src, // アイキャッチ画像の URL 'class' => "attachment-$size", // 指定した大きさ 'alt' => trim( strip_tags( $attachment->post_excerpt ) ), // アイキャッチ画像の抜粋 'title' => trim( strip_tags( $attachment->post_title ) ), // アイキャッチ画像のタイトル ); ?>
wp_get_attachment_image()のコード
<?php /** * Get an HTML img element representing an image attachment * * While `$size` will accept an array, it is better to register a size with * add_image_size() so that a cropped version is generated. It's much more * efficient than having to find the closest-sized image and then having the * browser scale down the image. * * @since 2.5.0 * * @param int $attachment_id Image attachment ID. * @param string|array $size Optional. Image size. Accepts any valid image size, or an array of width * and height values in pixels (in that order). Default 'thumbnail'. * @param bool $icon Optional. Whether the image should be treated as an icon. Default false. * @param string|array $attr { * Optional. Attributes for the image markup. * * @type string $src Image attachment URL. * @type string $class CSS class name or space-separated list of classes. * Default `attachment-$size_class size-$size_class`, * where `$size_class` is the image size being requested. * @type string $alt Image description for the alt attribute. * @type string $srcset The 'srcset' attribute value. * @type string $sizes The 'sizes' attribute value. * } * @return string HTML img element or empty string on failure. */ function wp_get_attachment_image( $attachment_id, $size = 'thumbnail', $icon = false, $attr = '' ) { $html = ''; $image = wp_get_attachment_image_src( $attachment_id, $size, $icon ); if ( $image ) { list( $src, $width, $height ) = $image; $hwstring = image_hwstring( $width, $height ); $size_class = $size; if ( is_array( $size_class ) ) { $size_class = join( 'x', $size_class ); } $attachment = get_post( $attachment_id ); $default_attr = array( 'src' => $src, 'class' => "attachment-$size_class size-$size_class", 'alt' => trim( strip_tags( get_post_meta( $attachment_id, '_wp_attachment_image_alt', true ) ) ), ); $attr = wp_parse_args( $attr, $default_attr ); // Generate 'srcset' and 'sizes' if not already present. if ( empty( $attr['srcset'] ) ) { $image_meta = wp_get_attachment_metadata( $attachment_id ); if ( is_array( $image_meta ) ) { $size_array = array( absint( $width ), absint( $height ) ); $srcset = wp_calculate_image_srcset( $size_array, $src, $image_meta, $attachment_id ); $sizes = wp_calculate_image_sizes( $size_array, $src, $image_meta, $attachment_id ); if ( $srcset && ( $sizes || ! empty( $attr['sizes'] ) ) ) { $attr['srcset'] = $srcset; if ( empty( $attr['sizes'] ) ) { $attr['sizes'] = $sizes; } } } } /** * Filters the list of attachment image attributes. * * @since 2.8.0 * * @param string[] $attr Array of attribute values for the image markup, keyed by attribute name. * See wp_get_attachment_image(). * @param WP_Post $attachment Image attachment post. * @param string|array $size Requested size. Image size or array of width and height values * (in that order). Default 'thumbnail'. */ $attr = apply_filters( 'wp_get_attachment_image_attributes', $attr, $attachment, $size ); $attr = array_map( 'esc_attr', $attr ); $html = rtrim( "<img $hwstring" ); foreach ( $attr as $name => $value ) { $html .= " $name=" . '"' . $value . '"'; } $html .= ' />'; } return $html; } ?>