参数
- $attachment_id
-
(int) (必填) 图片附件ID。
- $size
-
(string|int[]) (可选) 图片尺寸。接受任何注册的图像尺寸名称,或以像素为单位的宽度和高度值数组(按该顺序)。
默认值: 'thumbnail'
- $icon
-
(bool) (可选) 图片是否应返回到mime类型图标。
默认值: false
返回
(array|false) 图片数据的数组,如果没有可用的图像,则为false。
- (string) 图片资源 URL
- '1'
(int) 图像宽度(px) - '2'
(int) 图像高度(px) - '3'
(bool) 是否是调整过尺寸的图片。
源码
更新日志
版本 | 描述 |
---|---|
2.5.0 | 开始引入 |
使用示例
#return部分提供键,但函数仅返回索引。我们应该弄清楚这个函数返回了什么。和一些描述或链接来解释
is_intermediate
array{ [0] => url, [1] => width</em> [2] => height</em> [4] => is_intermediate }
默认用法
$image_attributes = wp_get_attachment_image_src( $attachment_id = 8 ); if ( $image_attributes ) : ?> <img src="<?php echo $image_attributes[0]; ?>" width="<?php echo $image_attributes[1]; ?>" height="<?php echo $image_attributes[2]; ?>" /> <?php endif; ?>
显示与文章相关的第一个图像
此函数检索与文章相关的第一个图像。/** * Output a post's first image. * * @param int $post_id Post ID. */ function wpdocs_echo_first_image( $post_id ) { $args = array( 'posts_per_page' => 1, 'order' => 'ASC', 'post_mime_type' => 'image', 'post_parent' => $post_id, 'post_status' => null, 'post_type' => 'attachment', ); $attachments = get_children( $args ); if ( $attachments ) { echo '<img src="' . wp_get_attachment_thumb_url( $attachments[0]->ID ) . '" class="current">'; } }
要在函数
wp_get_attachment_image_src
中获取原始尺寸的URL图像,请使用:$img_atts = wp_get_attachment_image_src($IMG_ID, 'full'); <img src="<?php echo $img_atts[0]; ?>"
如果这些图标可用,WordPress可以使用媒体图标来表示博客和管理界面上的附件文件
对于图像,它返回缩略图。对于其他媒体类型,它会在目录wp-includes/images/crystal/
中查找按媒体类型命名的图像文件(例如audio.jpg
)。此示例显示了如何将此目录更改为主题
wp-content/themes/yourtheme/images
中名为“images”的文件夹。创建文件夹并将“媒体类型图像”放入其中。要告诉WordPress目录已更改,请将其放入当前主题的functions.php
文件中:add_filter( 'icon_dir', 'wpdocs_theme_icon_directory' ); add_filter( 'icon_dir_uri', 'wpdocs_theme_icon_uri' ); /* * Return my desired icon directory */ function wpdocs_theme_icon_directory( $icon_dir ) { return get_stylesheet_directory() . '/images'; } /* * Return my desired icon URI */ function wpdocs_theme_icon_uri( $icon_dir ) { return get_stylesheet_directory_uri() . '/images'; }
如果存在缩略图,则检索尺寸为220的文章缩略图url。
$args = array( 'post_type' => 'post', 'post_status' => 'publish', 'posts_per_page' => 5, 'numberposts' => 5 ); $posts = get_posts( $args ); foreach($posts as $post) { $thumbnail_url = wp_get_attachment_image_src(get_post_thumbnail_id($post->ID), array('220','220'), true ); $thumbnail_url = $thumbnail_url[0]; echo ( !empty($thumbnail_url) ) ? $thumbnail_url : 'No thumb!'; }
本页的几条笔记提到了在基于
get_children
的帖子中获得第一张图像。不幸的是,如果你使用的是古腾堡编辑器,这将不起作用。要从基于古腾堡的文章中获得第一个图像,需要解析这些块。这里有一个函数,它将返回post中第一个图像的ID,如果没有,则返回null
。function first_image_in_blocks( $id ) { $post = get_post( $id ); $blocks = parse_blocks( $post->post_content ); // Get all blocks that have a core/image blockName $images = array_filter( $blocks, function( $block ) { return 'core/image' === $block['blockName']; } ); // If there are any images, get the id from the first image, otherwise // return null return count( $images ) > 0 ? $images[0]['attrs']['id'] : null; }
这是我的代码,用于仅从文章附件创建自定义库(我在指定类别的“singl.php”中使用它)
<!-- begin gallery --> <?php if ( get_the_category()[0]->slug == 'gallery' ) { ?> <div class="gallery" id ='lightgallery' > <?php $attachments = get_posts( array( 'post_type' => 'attachment', 'post_parent' => $post->ID ) ); if ( $attachments ) { foreach ( $attachments as $post ) { echo '<a href="'.wp_get_attachment_image_src( $post->ID, 'full' )[0].'">' ; echo '<img src="'.wp_get_attachment_image_src( $post->ID )[0].'" > </a>'; } wp_reset_postdata(); } ?> </div> <?php } ?> <!-- End gallery -->
函数返回:
array (size=4) 0 => string 'http://example.com/wp-content/uploads/2017/11/image-name-150x150.jpg' (length=72) 1 => int 150 2 => int 150 3 => boolean true