×

WordPress 真正的图片延迟加载技术

优畅主题 Wordpress技术 2014-09-12 10:05 3,461 0 条评论

优畅表示,目前网络上很多《jQuery实现图片延迟加载》一文的方法,其实图片并未真正实现延迟加载,只是在窗口滚动到图片位置时才显示图片而已,是个假像。但目前这个图片延迟加载插件 jquery.lazyload.js已更新,最新版本是1.9.3,并给出真正实现图片延迟加载的方法。

演示效果

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

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

这样才能启用延迟加载。说明请到官网查看:Lazy Load Plugin for jQuery

具体实现方法:

一、添加必要的JS文件

首先下载相关JS文件,并放到主题“js”文件夹中

将下面代码添加到主题头部header.php模板中:

<script src="<?php echo get_template_directory_uri(); ?>/js/jquery.min.js" type="text/javascript"></script>
<script src="<?php echo get_template_directory_uri(); ?>/js/jquery.lazyload.min.js" type="text/javascript"></script>
<script type="text/javascript">
 $(function() {
 $("img").lazyload({
 effect:"fadeIn"
 });
 });
</script>

二、为图片自动添加 data-original 属性

按官网的要求插入图片时必须添加一个data-original属性,手动添加很麻烦,还好有人已提供自动为图片添加data-original 属性的方法,将下面代码添加到主题 functions.php 中:

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

将一张加载动画图片放到主题图片文件夹img中

另外,Wordpress头像延迟加载,可以用下面的代码:

<?php echo '<img class="avatar" src="' . get_bloginfo('template_directory') . '/img/loading.gif" alt="WordPress 真正的图片延迟加载技术" alt="avatar" data-original="' . preg_replace(array('/^.+(src=)(\"|\')/i', '/(\"|\')\sclass=(\"|\').+$/i'), array('', ''), get_avatar( $comment, '64' )) . '" />'; ?>

替换gravatar头像调用标准函数:

<?php echo get_avatar( $comment, '32' ); ?>

如果本文对你有帮助,你可以扫描右边的二维码打赏,谢谢支持
联系优畅:uctheme#qq.com (#改为@)
微信订阅号:优畅主题(uctheme)
官网淘宝店:http://uctheme.taobao.com
版权声明:版权归 优畅主题 所有,转载请注明出处!
转载请保留链接: https://www.uctheme.com/technical/935.html
谢谢支付宝打赏
谢谢微信打赏

品牌创立:2012-11-18优畅主题

优畅主题成立于2012年11月18日,专业Wordpress导购主题开发商,拥有多年Wordpress主题设计经验,专门为淘宝客和导购客站长量身打造高端赚钱模板,我们注重细节,有着严谨的开发态度,一切从客户角度出发,如果你也喜欢 WordPress导购主题,欢迎和我们一起交流!


10 + 8 = ?

目前还没有评。

切换注册

登录

忘记密码 ?

您也可以使用第三方帐号快捷登录

切换登录

注册