描述
虽然$size
将接受数组,但最好用add_image_size()注册尺寸,以便生成裁剪版本。这比找到尺寸最接近的图像,然后让浏览器缩小图像比例要高效得多。
参数
- $attachment_id
-
(int) (必填) 图片附件ID。
- $size
-
(string|int[]) (可选) 图片大小。接受任何注册的图像尺寸名称,或以像素为单位的宽度和高度值数组(按该顺序)。
默认值: 'thumbnail'
- $icon
-
(bool) (可选) 是否应将图片视为图标。
默认值: false
- $attr
-
(string|array) (可选) 图片标记的属性。
- 'src'
(string) 图片附件 URL - 'class'
(string) CSS类的名称或以空格分隔的类的列表,默认attachment-$size_class size-$size_class
其中$size_class
是请求的图像尺寸 - 'alt'
(string) alt 属性的图片描述 - 'srcset'
(string) srcset 属性值 - 'sizes'
(string) sizes 属性值 - 'loading'
(string|false) loading 属性值,传递一个false值将导致图像的属性被省略,默认是 'lazy',取决于 wp_lazy_loading_enabled()
默认值: ''
- 'src'
返回
(string) 成功返回HTML img 元素,失败为空字符串
说明
用法
wp_get_attachment_image( $attachment_id, $size, $icon, $attr );
如果附件是图片,则函数返回指定尺寸的图片。对于其他附件,如果$icon参数设置为true,则函数将返回媒体图标。
要在模板中动态获取附件ID,可以使用get_posts( array( 'post_type' => 'attachment' ) )
等。
源码
更新日志
版本 | 描述 |
---|---|
5.5.0 | 添加了$loading 属性 |
4.4.0 | 添加了$srcset 和$sizes 属性 |
2.5.0 | 开始引入 |
使用示例
wp_get_attachment_image 函数可以接受四个值,如您所见:
wp_get_attachment_image ( int $attachment_id, string|array $size = 'thumbnail', bool $icon = false, string|array $attr = '' )
所以我总是用:
<?php echo wp_get_attachment_image( get_the_ID(), array('700', '600'), "", array( "class" => "img-responsive" ) ); ?>
注意:我们可以简单地使用get_the_ID()传递活动文章的ID。这里,700是附件图像的宽度,600是附件图像的高度。我们还可以将我们的类作为array( “class” => “img-responsive” )传递。
默认调用返回如下:
<img width="150" height="150" src="http://example.com/wp-content/uploads/2017/11/image-xyz-150x150.jpg" class="attachment-thumbnail size-thumbnail" alt="" srcset="http://example.com/wp-content/uploads/2017/11/image-xyz-150x150.jpg 150w, http://example.com/wp-content/uploads/2017/11/image-xyz-50x50.jpg 50w" sizes="(max-width: 150px) 100vw, 150px" />
要显示附加到某个页面的所有图像和标题,并将其显示为项目符号列表,可以使用以下选项:
<ul> <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); $attachments = get_posts( array( 'post_type' => 'attachment', 'numberposts' => -1, 'post_status' => null, 'post_parent' => $post->ID ) ); if ( $attachments ) { foreach ( $attachments as $attachment ) { ?> <li><?php echo wp_get_attachment_image( $attachment->ID, 'full' ); ?> <p><?php echo apply_filters( 'the_title', $attachment->post_title ); ?></p> </li> <?php } } endwhile; endif; ?> </ul>
wp_get_attachment_image
是从主题/插件选项接收图像的好方法。要获取从自定义选项上载的图像,请执行以下操作:echo wp_get_attachment_image( get_theme_mod( $option_id_in_string ) );