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


15

使用插入时,<?php the_post_thumbnail(); ?>如何从post_thumbnail中删除width和height属性?

<img width="800" height="533" src="http://domain.com/wp-content/uploads/2011/02/image.jpg" class="attachment-post-thumbnail wp-post-image" />

寻找thumbnail.php文件,不确定,但通常文件中包含硬编码
Niraj Chauhan 2011年

如果您想知道,我希望能够使用CSS修改宽度和高度-更具体地说,设置最大宽度,然后让高度自行设置,而不是默认为硬编码。
卡森,

使用萤火虫获取确切的类或ID,或给我您的URL
Niraj Chauhan 2011年

2
更改主题之外的文件中的任何内容(例如post-thumbnail-template.php)将是一个坏主意,因为任何WordPress更新都会覆盖它。
卡森

是什么使您认为需要删除属性才能执行所需的操作?
t31os 2011年

Answers:


25

相关:过滤以删除图像尺寸属性?

有一个过滤器,在post_thumbnail_html该过滤器上,将完整的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;
}

它对我不起作用。add_filter('post_thumbnail_html','remove_thumbnail_dimensions',10,3); 函数remove_thumbnail_dimensions($ html,$ post_id,$ post_image_id){if(wp_is_mobile()){$ html = preg_replace('/(width | height)= \“ \ d * \” \ s /',“”,$ html ); }返回$ html; }
dlopezgonzalez 2014年

这将从the_post_thumbnail()使用where的所有实例中删除宽度/高度。
达里奥·扎德罗

5

您只需抓住拇指的网址并将其自己放在img标签中即可:

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

1
那也是我遇到的唯一解决方案,只是希望有一种方法可以解决此问题。
卡森

但是,您还需要查询alt和title属性
MZAweb 2012年

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

这将完成工作,“ the_contnet”将删除所有帖子内容文本图像的宽度和高度。


编辑您的答案,并添加解释:为什么可以解决问题?
fuxia

0

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

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

您可以将“大”替换为“缩略图”,“中”,“满”或您在主题中声明的自定义图像大小。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.