今天看到中文版的WordPress已经可以升级到5.5.3版本了,中间有两个小版本没有升级,一是因为中文站经常打不开,容易出错,后台无法直接在升级,需要要重新下载安装包。二是因为有点懒,不经常查看WordPress最新信息。
今天正好看到,就把所有的站点都升级到最新版的WordPress 5.5.3了,但是升级完之后有个问题,升级完成如果主题没有更新到最新版或者支持5.5.3版本的话,网站的缩略图会不显示,尤其是幻灯片。
不过好在我不是第一个遇到这个网站的,技术大神已经找到缩略图不显示的原因,
WordPress 5.5 给
the_content
接口新增了wp_filter_content_tags
函数,它主要做三件事情:根据图片的 ID 给没有
width
和height
的图片标签加上这两个属性。根据图片的 ID 给图片标签加上
srcset
属性。给图片标签加上
loading="lazy"
属性。其中第三点就是实现图片懒加载的,具体执行的函数是
wp_img_tag_add_loading_attr
,它把前面获取的图片标签,一个个判断一下有没有width
和height
属性,如果有的话,就加上loading="lazy"
属性。
知道了什么原因在处理就简单了。
第一、升级WordPress主题,升级到最新版,如果你用的主题还有更新的话。
第二、添加禁止代码即可。
在主题的functions.php中添加以下代码:
add_filter( 'wp_lazy_loading_enabled', '__return_false' );
然后在返回查看刷新一下网站缩略图即可显示了。当然,在修改之前一定要备份主题,如果升级主题,也请注意最新主题是否支持WordPress 5.5版本。