14

How can I remove the width and height attributes from the post_thumbnail when inserting with <?php the_post_thumbnail(); ?>?

<img width="800" height="533" src="http://domain.com/wp-content/uploads/2011/02/image.jpg" class="attachment-post-thumbnail wp-post-image" />
  • look for thumbnail.php file, not sure but usually that files contain the hard coding – Niraj Chauhan Jul 7 '11 at 14:54
  • In case you were wondering, I want to be able to modify widths and height with CSS - more specifically set a max-width and let the height set itself rather than default to the hard coded one. – Carson Jul 7 '11 at 14:54
  • use firebug to get the exact class or ID, or give me your URL – Niraj Chauhan Jul 7 '11 at 14:56
  • 2
    Changing anything in a file outside the theme (for example post-thumbnail-template.php) would be a bad idea as any WordPress update would overwrite it. – Carson Jul 7 '11 at 15:10
  • What makes you think you need to remove the attributes to do what you want? – t31os Jul 7 '11 at 17:27
25

Related: Filter to remove image dimension attributes?

There's a filter on post_thumbnail_html which receives as its argument the full html element representing the post thumbnail image before it's echoed to the page. You can filter out the dimensions with a bit of regex:

add_filter( 'post_thumbnail_html', 'remove_thumbnail_dimensions', 10, 3 );

function remove_thumbnail_dimensions( $html, $post_id, $post_image_id ) {
    $html = preg_replace( '/(width|height)=\"\d*\"\s/', "", $html );
    return $html;
}
  • It does not work for me. add_filter( 'post_thumbnail_html', 'remove_thumbnail_dimensions', 10, 3 ); function remove_thumbnail_dimensions( $html, $post_id, $post_image_id ) { if ( wp_is_mobile() ) { $html = preg_replace( '/(width|height)=\"\d*\"\s/', "", $html ); } return $html; } – dlopezgonzalez Sep 11 '14 at 10:20
4

you could just grab the url of the thumb and put it in an img tag yourself:

<?php
$thumbnail = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), 'your_thumb_handle' );
?>
<img src="<?php echo $thumbnail['0']; ?>" />
  • 1
    That's the only solution I've come across too, was just hoping there was a way to do it without a workaround. – Carson Jul 7 '11 at 15:09
  • But you also need to query for the alt and title attributes – MZAweb Apr 6 '12 at 17:41
0
add_filter( 'post_thumbnail_html', 'remove_thumbnail_dimensions', 10 );
add_filter( 'image_send_to_editor', 'remove_thumbnail_dimensions', 10 );
add_filter( 'the_content', 'remove_thumbnail_dimensions', 10 );
function remove_thumbnail_dimensions( $html ) {
    $html = preg_replace( '/(width|height)=\"\d*\"\s/', "", $html );
    return $html;
}

this will do the job, "the_contnet" will remove all post content text image width and height.

  • Please edit your answer, and add an explanation: why could that solve the problem? – fuxia Aug 23 '18 at 14:53

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.