wp_get_attachment_image_src( int $attachment_id, string|array $size = 'thumbnail', bool $icon = false )
Retrieve an image to represent an attachment.
Description Description
A mime icon for files, thumbnail or intermediate size for images.
The returned array contains four values: the URL of the attachment image src, the width of the image file, the height of the image file, and a boolean representing whether the returned array describes an intermediate (generated) image size or the original, full-sized upload.
Parameters Parameters
- $attachment_id
-
(int) (Required) Image attachment ID.
- $size
-
(string|array) (Optional) Image size. Accepts any valid image size, or an array of width and height values in pixels (in that order).
Default value: 'thumbnail'
- $icon
-
(bool) (Optional) Whether the image should be treated as an icon.
Default value: false
Return Return
(false|array) Returns an array (url, width, height, is_intermediate), or false, if no image is available.
Source Source
File: wp-includes/media.php
823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 | function wp_get_attachment_image_src( $attachment_id , $size = 'thumbnail' , $icon = false ) { // get a thumbnail or intermediate image if there is one $image = image_downsize( $attachment_id , $size ); if ( ! $image ) { $src = false; if ( $icon && $src = wp_mime_type_icon( $attachment_id ) ) { /** This filter is documented in wp-includes/post.php */ $icon_dir = apply_filters( 'icon_dir' , ABSPATH . WPINC . '/images/media' ); $src_file = $icon_dir . '/' . wp_basename( $src ); @list( $width , $height ) = getimagesize ( $src_file ); } if ( $src && $width && $height ) { $image = array ( $src , $width , $height ); } } /** * Filters the image src result. * * @since 4.3.0 * * @param array|false $image Either array with src, width & height, icon src, or false. * @param int $attachment_id Image attachment ID. * @param string|array $size Size of image. Image size or array of width and height values * (in that order). Default 'thumbnail'. * @param bool $icon Whether the image should be treated as an icon. Default false. */ return apply_filters( 'wp_get_attachment_image_src' , $image , $attachment_id , $size , $icon ); } |
Expand full source code Collapse full source code View on Trac
Changelog Changelog
Version | Description |
---|---|
2.5.0 | Introduced. |
User Contributed Notes User Contributed Notes
You must log in before being able to contribute a note or feedback.
The #return section gives keys, but the function just returns indexes. We should make it clearer what is returned by this function. And some description or a link to explain
is_intermediate
array
{
[0] => url,
[1] => width</em>
[2] => height</em>
[4] => is_intermediate
}
Default Usage
$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
; ?>
Show the first image associated with the post
This function retrieves the first image associated with a post.
/**
* 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">'
;
}
}
Expand full source codeCollapse full source code
Tips: Return values ( [1] width [2] height [3] resize ) seems to be empty when using the Jetpack plugin.
Change Icon Directory
WordPress can use media icons to represent attachment files on your blog and in the Admin interface, if those icons are available.
For images, it returns the thumbnail. For other media types, it looks for image files named by media type (e.g.,
audio.jpg
) in the directorywp-includes/images/crystal/
.This example shows how you can change this directory to a folder called “images” in your theme:
wp-content/themes/yourtheme/images
. Create the folder and put “media type images” in there. To tell WordPress the directory has changed, put this in the current theme’sfunctions.php
file: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'
;
}
Expand full source codeCollapse full source code
Retrieve the post thumbnail url sized as 220 if thumbnail exists.
$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!'
;
}
the function returns:
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