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
4 Answers
Reset to default 25Related: 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
评论列表(0条)