WordPress图片延迟加载的实现【代码篇】

2019年12月14日19:22:28 发表评论 热度517 ℃

最近有朋友在群里面提问,我们的WordPress图片延迟加载功能是如何实现的,既然大家觉得预加载的功能非常好,那么小编就专门写一篇文章来介绍wordpress的预加载是如何实现的吧!

WordPress图片延迟加载的介绍

预加载,顾名思义,在超出网站可视范围内,图片不做加载,等到用户滚动浏览器窗口,图片元素到达可视范围内,开始加载图片,这样的方式可以打打的节省网站的资源和加快网站加载的速度,所以对于图片较多的wordpress网站来说,图片预加载功能还是非常的好的。

图片预加载的核心:lazyload。

对于lazyload有网站编程经验的朋友应该都很熟悉,图片预加载的功能实现就是这个js文件来实现的。

使用lazyload有两种方式,一种是使用插件,一种是直接集成在主题中的非插件方式,下面我们首先介绍一下非插件实现lazyload:

新版 jquery.lazyload.js 插件,要求必须给图片地址添加一个data-original属性,例如下:

  1. <img class="lazy" data-original="img/example.jpg" width="640" height="480">

所以,我们要给wordpress主题里,有图片展示的地方加上data-original属性才行。

然后往header.php中加载文件:

  1. <script src="<?php echo get_template_directory_uri(); ?>/js/jquery.min.js" type="text/javascript"></script>
  2. <script src="<?php echo get_template_directory_uri(); ?>/js/jquery.lazyload.min.js" type="text/javascript"></script>
  3. <script type="text/javascript">
  4.     $(function() {
  5.         $("img").lazyload({
  6.             effect:"fadeIn"
  7.           });
  8.         });
  9. </script>

加载了js这些后,网站里图片就能够实现延迟加载了,但是文章里的图片貌似还没有实现WordPress图片延迟加载,下面就是给wordpress里文章里插入的图片加data-original属性了,将下面代码贴进wordpress主题文件夹的functions.php内

  1. add_filter ('the_content', 'lazyload');
  2. function lazyload($content) {
  3.     $loadimg_url=get_bloginfo('template_directory').'/images/loading.gif';
  4.     if(!is_feed()||!is_robots) {
  5.         $content=preg_replace('/<img(.+)src=[\'"]([^\'"]+)[\'"](.*)>/i',"<img\$1data-original=\"\$2\" src=\"$loadimg_url\"\$3>\n<noscript>\$0</noscript>",$content);
  6.     }
  7.     return $content;
  8. }

经过这两步骤,网站就实现了WordPress图片延迟加载了!

其实也有插件版的,请进:images lazyload

上面所说的都已打包文件可进行下载,请到下载区下载全部相关文件吧!

瓜皮猪

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: