admin管理员组

文章数量:1395274

I am using wp_get_attachment_image() to try and output an img tag with width and height attributes.

Here is my code:

$thumb_src = wp_get_attachment_image( $id, 'thumbnail', false, array('width'=> '10', 'height' => '10' ));
$thumb_output = "<li>".$thumb_src."</li>";

I was expecting this to output:

<li><img width="10" height="10" src="http://..../wp-content/uploads/2011/01/pic-150x150.jpg" class="attachment-thumbnail" alt="pic" width="10" height="10" /></li>

Instead, it is outputting:

<li><img width="150" height="150" src="http://..../wp-content/uploads/2011/01/pic-150x150.jpg" class="attachment-thumbnail" alt="pic" width="10" height="10" /></li>

Thanks very much for any help anyone can give. I have tried it with other attributes, like the style attribute, and the style tag appears as expected. I guess I could use the style tag to set the dimensions that way but I don't understand why the width/height method isn't working!

I am using wp_get_attachment_image() to try and output an img tag with width and height attributes.

Here is my code:

$thumb_src = wp_get_attachment_image( $id, 'thumbnail', false, array('width'=> '10', 'height' => '10' ));
$thumb_output = "<li>".$thumb_src."</li>";

I was expecting this to output:

<li><img width="10" height="10" src="http://..../wp-content/uploads/2011/01/pic-150x150.jpg" class="attachment-thumbnail" alt="pic" width="10" height="10" /></li>

Instead, it is outputting:

<li><img width="150" height="150" src="http://..../wp-content/uploads/2011/01/pic-150x150.jpg" class="attachment-thumbnail" alt="pic" width="10" height="10" /></li>

Thanks very much for any help anyone can give. I have tried it with other attributes, like the style attribute, and the style tag appears as expected. I guess I could use the style tag to set the dimensions that way but I don't understand why the width/height method isn't working!

Share Improve this question edited Feb 15, 2020 at 22:01 Viktor Borítás 3042 silver badges11 bronze badges asked Feb 2, 2014 at 12:52 SarahSarah 4451 gold badge6 silver badges16 bronze badges
Add a comment  | 

1 Answer 1

Reset to default 2

As written in the documentation, there are no attributes width and height in the fourth parameter of the function. What you might want to do is this:

wp_get_attachment_image(
    $id,
    array( 10, 10 )
);

An alternative and recommended way is to define an image size which will lead WordPress to generate a thumbnail for this size on upload.

add_action( 'after_setup_theme', 'wpse_132171_create_image_size' );
function wpse_132171_create_image_size() {

    add_theme_support( 'post-thumbnails' );
    add_image_size( 'my_size', 10, 10 ); 
}

With that, you can refer to that size by the slug my_size in wp_get_attachment_image():

wp_get_attachment_image( $id, 'my_size' );

For this solution you should rebuild your thumbnails if you have existing images using a plugin like »AJAX Thumbnail Rebuild«

Note: When you use an array as 2nd argument, WordPress will use attachment-{$val1}x{$val2} (a string built from the array values) as class. This behavior breaks as soon as you use the 4th argument (array attributes) and add a custom class key there. The custom class will override what is delivered by core. This could be considered to be a bug.

本文标签: thumbnailswpgetattachmentimage() not working when trying to add width and height attributes