wp_get_attachment_image 返回附件文件的HTML图像元素

文 / @WordPress主题

函数描述

这里有一个函数,能够返回附件文件的HTML图像元素。如果没有找到附件,该函数会返回空字符串。

使用方法

<?php wp_get_attachment_image( $attachment_id, $size, $icon, $attr ); ?>

当附件是一张图片时,此函数会返回指定尺寸的图片。而其他类型的附件则会返回代表该附件类型的多媒体图标,如果将$icon设置为true的话。

如果需要在模板中动态获取多媒体ID,则可以使用get_posts('post_type=attachment')

默认使用

<?php echo wp_get_attachment_image(1); ?>

需要注意的是,如果附件不是一张图片,则函数返回针对该附件类型的多媒体图标而不是任何图片。作为备选方案,可以使用get_the_attachment_link函数来获取附件的链接。

参数

参数 数据类型 是否必需 描述 默认值
$attachment_id 整数 附件ID
$size 字符串 | 数组 需要显示的图片附件的尺寸:可以是以下尺寸名称或尺寸数组,如:array(32,32) thumbnail

当需要使用图片的尺寸数组时,除了使用图片的尺寸数组外,还可以使用add_image_size函数注册一个图片尺寸。这样能够生成一个裁剪后的图片,比起使用数组更方便和有效。

$icon (boolean) (可选) : 当需要代表附件的媒体图标时,默认值为False。

  • 1(True)
  • 0(False)–默认值

$attr (string/array) (可选) : 查询字符串或属性数组,默认值:None

$default_attr=array(
  'src'  =>$src,
  'class' =>"attachment-$size",
  'alt'=>trim(strip_tags(get_post_meta($attachment_id,'_wp_attachment_image_alt',true))),
);

$attr参数合并了WordPress默认属性和传递到wp_get_attachment_image_attributesfilter的属性。

使用示例

显示全部图片为一个列表

下面的代码可用于以列表形式展示附加到某页面中的所有图片和标题:

<ul>
<?php if(have_posts()) : while(have_posts()) : the_post();

$args=array(
  'post_type'=>'attachment',
  'numberposts'=>-1,
  'post_status'=>null,
  'post_parent'=>$post->ID
);

$attachments=get_posts($args);
if($attachments){
  foreach($attachments as $attachment){
    echo'<li>';
    echo wp_get_attachment_image($attachment->ID,'full');
    echo'<p>';
    echo apply_filters('the_title',$attachment->post_title);
    echo'</p></li>';
  }
}

endwhile; endif; ?>
</ul>

返回值

此函数会返回一个HTML元素或空字符串(如果获取失败的话)。

添加UTHEME为好友
扫码添加UTHEME微信为好友
· 分享WordPress相关技术文章,主题上新与优惠动态早知道。
· 微信端最大WordPress社群,限时免费入群。