禁止WordPress图片自动添加width和height属性

  • 内容
  • 评论
  • 相关

默认情况下,WordPress会自动添加图片的width和height属性,有的时候在文章中会发生错位,经测试,如果禁止WordPress图片自动添加width和height属性能解决这种尴尬!

方法一

在后台WordPress主题编辑模板函数(functions.php)文件,在文件最后面添加如下代码:

//移除img标签自动高度和宽度。
add_filter( 'post_thumbnail_html', 'remove_width_attribute', 10 );
add_filter( 'image_send_to_editor', 'remove_width_attribute', 10 );
function remove_width_attribute( $html ) {
  $html = preg_replace( '/(width|height)="\d*"\s/', "", $html );
  return $html;
}

方法二

这种方法就是首先判断是否为移动设备,如果是移动设备就删除img标签的width和height属性,从而实现自适性的目的。

// 自适应图片删除width和height,by Ludou

function ludou_remove_width_height_attribute($content){
  preg_match_all("/<[img|IMG].*?src=[\'|\"](.*?(?:[\.gif|\.jpg|\.png\.bmp]))[\'|\"].*?[\/]?>/", $content, $images);
  if(!empty($images)) {
    foreach($images[0] as $index => $value){
      $new_img = preg_replace('/(width|height)="\d*"\s/', "", $images[0][$index]);
      $content = str_replace($images[0][$index], $new_img, $content);
    }
  }
  return $content;
}
// 判断是否是移动设备浏览
if(wp_is_mobile()) {
// 删除文章内容中img的width和height属性
  add_filter('the_content', 'ludou_remove_width_height_attribute', 99);

以上就是禁止禁止WordPress图片自动添加width和height属性的两种方法,有需要的可以参考!

方法三

通过 jQuery 删除widthheight属性

对于已经添加到文章的图像,必须手动删除widthheight属性,或者也可以使用一些jQuery代码来解决问题,以下代码添加到主题 js 文件中:

    /*直接删除图像上的大小属性*/
    jQuery(document).ready(function($) {
        $('img').removeAttr('width').removeAttr('height');
    });

使用 jQuery 代码删除图像大小属性更加方便,对于已经添加或者将来要添加的图片都适用。

使用 CSS 使图像大小属性失效

对于响应式图片或者延迟加载时的默认图片都是较好的解决方法,将以下代码添加到主题 CSS 样式文件中:

  img {
        width: initial !important;
        max-width: 100% !important;
    }

重要提示

以上的方法是需要在图片响应式做好的前提下,即我们在主题实际使用过程中对 img 设置 max-width: 100%; height: auto; 这两条属性,才可以保证成比例拉伸。

觉得有用,欢迎打赏!

评论

0条评论

发表评论

电子邮件地址不会被公开。 必填项已用*标注