How do you remove hard coded thumbnail image dimensions?

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

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=".jpg" class="attachment-post-thumbnail wp-post-image" />

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/wp-content/uploads/2011/02/image.jpg" class="attachment-post-thumbnail wp-post-image" />
Share Improve this question asked Jul 7, 2011 at 14:50 CarsonCarson 3313 gold badges4 silver badges11 bronze badges 6
  • look for thumbnail.php file, not sure but usually that files contain the hard coding – Niraj Chauhan Commented Jul 7, 2011 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 Commented Jul 7, 2011 at 14:54
  • use firebug to get the exact class or ID, or give me your URL – Niraj Chauhan Commented Jul 7, 2011 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 Commented Jul 7, 2011 at 15:10
  • What makes you think you need to remove the attributes to do what you want? – t31os Commented Jul 7, 2011 at 17:27
 |  Show 1 more comment

4 Answers 4

Reset to default 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;
}

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']; ?>" />
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.

I prefer this solution below as I'm not doing a global replace with a function. This would be incorporated into your theme files.

<?php echo preg_replace( '/(width|height)="\d*"/', '', get_the_post_thumbnail( get_the_ID(), 'large' ) ); ?>

You can replace "large" with "thumbnail", "medium", "full", or your custom image size declared in your theme.

发布者:admin,转转请注明出处:http://www.yc00.com/questions/1744808617a4594929.html

相关推荐

  • How do you remove hard coded thumbnail image dimensions?

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

    2天前
    30

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信