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

Posted in:
Update time:2020-10-29

函数描述

返回附件文件的 HTML 图像元素,如果没有找到附件,返回空字符串。

Usage

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

默认使用

<?php echo wp_get_attachment_image( 1 ); ?>

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

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

parameters

parametersdata typeRequired or notdescriptivedefault value
$attachment_idinteger (math.)be附件 IDnot have
$size字符串|数组clogged需要显示的图片附件的尺寸:可是一下尺寸名称或尺寸数组、如:array(32,32)thumbnail

除了使用图片的尺寸数组,你还可以使用 add_image_size 函数注册一个图片尺寸,这样会生成一个裁剪后的图片,这比数组使用起来更方便有效。 $icon (boolean) (可选) 使用媒体图标代表附件 默认: ‘False’

  • 1 (True)
  • 0 (False) – Default

$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_attributes filter的属性。

usage example

显示全部图片为一个列表

需要以列表的形式显示附加到一个页面的中的所有图片和标题,使用下面的代码:

<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>

return value

一个HTML元素或者空字符串(获取失败时)。

We offer WordPress Themes and Plugins Custom Development Services

This site has long undertaken WordPress themes, plugins, WooCommerce-based store mall development business. We have 10 years of experience in WordPress development, if you want to Developing Websites with WordPress, please contact WeChat: iwillhappy1314 or email: amos@wpcio.com for inquiries.

发表回复

Your email address will not be published. 必填项已用 * 标注

*