当前浏览:首页 / WordPress函数 / wp_get_attachment_image()

wp_get_attachment_image( int $attachment_id, string|int[] $size = 'thumbnail', bool $icon = false, string|array $attr = '' )

获取图片附件的HTML img元素

attachment 附件more...

imagemore...


描述

虽然$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()

默认值: ''


返回

(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开始引入

使用示例

  • 示例1

    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” )传递。

  • 示例2

    默认调用返回如下:

    <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" />
    
  • 示例3

    要显示附加到某个页面的所有图像和标题,并将其显示为项目符号列表,可以使用以下选项:

    <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>
    
  • 示例4

    wp_get_attachment_image是从主题/插件选项接收图像的好方法。要获取从自定义选项上载的图像,请执行以下操作:

    echo wp_get_attachment_image(
    	get_theme_mod( $option_id_in_string )
    );