如何删除硬编码的缩略图尺寸?

时间:2011-07-07 作者:Carson

使用插入时,如何从post\\u缩略图中删除宽度和高度属性<?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" />

4 个回复
最合适的回答,由SO网友:goldenapples 整理而成

相关:Filter to remove image dimension attributes?

有一个过滤器post_thumbnail_html 它接收表示后期缩略图图像的完整html元素作为其参数,然后再将其回显到页面。您可以使用一点正则表达式过滤掉维度:

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;
}

SO网友:Milo

您只需抓取拇指的url并将其放入img标记中即可:

<?php
$thumbnail = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), \'your_thumb_handle\' );
?>
<img src="<?php echo $thumbnail[\'0\']; ?>" />

SO网友:Duke Yin

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;
}
这将完成任务,“the\\u contnet”将删除所有帖子内容文本图像的宽度和高度。

SO网友:Dario Zadro

我更喜欢下面的解决方案,因为我没有用函数进行全局替换。这将被合并到您的主题文件中。

<?php echo preg_replace( \'/(width|height)="\\d*"/\', \'\', get_the_post_thumbnail( get_the_ID(), \'large\' ) ); ?>
您可以将“大”替换为“缩略图”、“中”、“全”或在主题中声明的自定义图像大小。

结束

相关推荐