是否使用筛选器删除图像维度属性?

时间:2010-12-18 作者:goldenapples

我正在一个基于流体宽度css模板的网站上工作,该模板将图像的最大宽度设置为包含它们的列的宽度,我需要删除内联widthheight WordPress添加到图像的维度属性。

我正在使用此过滤器处理我的特色图像:

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;
}
我知道我可以对the_content, 如果必要的话。但是有没有更好的方法呢?

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

谢谢大家!

这个image_send_to_editor 过滤器是我要找的。。。感谢@t31os指出这一点。

下面是我的函数。

add_filter( \'post_thumbnail_html\', \'remove_thumbnail_dimensions\', 10 );
add_filter( \'image_send_to_editor\', \'remove_thumbnail_dimensions\', 10 );

function remove_thumbnail_dimensions( $html ) {
    $html = preg_replace( \'/(width|height)=\\"\\d*\\"\\s/\', "", $html );
    return $html;
}
这将从使用检索的图像中删除内联标注属性the_post_thumbnail(), 并防止将这些属性添加到添加到编辑器的新图像中。不会从通过检索的图像中删除它们wp_get_attachment_image 或其他相关函数(其中没有挂钩),但必要时可以在模板文件中处理这些情况。

SO网友:MikeNGarrett

稍微修改了这个脚本。谢谢你的帮助!

add_filter( \'post_thumbnail_html\', \'remove_thumbnail_dimensions\', 10 );
add_filter( \'image_send_to_editor\', \'remove_thumbnail_dimensions\', 10 );
// Genesis framework only
add_filter( \'genesis_get_image\', \'remove_thumbnail_dimensions\', 10 );
// Removes attached image sizes as well
add_filter( \'the_content\', \'remove_thumbnail_dimensions\', 10 );
function remove_thumbnail_dimensions( $html ) {
    $html = preg_replace( \'/(width|height)=\\"\\d*\\"\\s/\', "", $html );
    return $html;
}

SO网友:Tohid Golkar

如果在函数中设置图像大小。php作为“图库”

add_image_size( \'gallery\', 200, 120, true );
您可以删除特定图像大小(如“gallery”)的宽度和高度:

add_filter( \'post_thumbnail_html\', \'remove_thumbnail_dimensions\', 10, 4 );

function remove_thumbnail_dimensions( $html, $post_id, $post_image_id,$post_thumbnail) {
    if ($post_thumbnail==\'gallery\'){
    $html = preg_replace( \'/(width|height)=\\"\\d*\\"\\s/\', "", $html );
    }
    return $html;
}

SO网友:EAMann

将该筛选器应用于the_content 将为所有内容触发它。这将是有效的,但可能会影响网站的性能和加载时间。如果您告诉WordPress在您首先插入图像时不要插入内联宽度和高度标记,那会更好。

不幸的是,实际插入图像的脚本是在JavaScript中构建的,并且与TinyMCE wysiwyg编辑器交互。可能有一种方法可以直接连接到它,但不使用标准add_filter() 呼叫。

结束

相关推荐

Resizing all images

我刚刚更改了博客的主题,由于页面宽度很小,它打破了布局。我之前的大多数图片(附在帖子中)的宽度都在600px左右,现在我需要按450px的比例调整它们的大小。如何一次性调整它们的大小?有这个插件吗?P、 美国:编写CSS规则是一个很好的选择,我已经做到了。但我认为调整图像大小也会减少每个页面的下载开销!