今天在Github上找东西的时候发现了一个叫做 Infinite AJAX Scroll 的项目,看到它通过很简单的设置,就可以让Wordpress支持分页Ajax无线加载功能。测试了下非常好用,现在分享给大家~
下面以Wordpress自带主题 Twenty Twelve 主题为例:
1) 下载 jquery-ias.min.js。
2) 把 jquery-ias.min.js
拷贝到 wp-content/themes/twentytwelve/js
文件夹下。
3) 在编辑器中打开 wp-content/themes/twentytwelve/header.php。
4) 为主题添加 jQuery。把下面的代码粘贴到 </head>
之前(如果主题已引入jQuery,可跳过此步):
<script type="text/javascript" src="http://libs.baidu.com/jquery/1.11.1/jquery.js"></script>
5) 把下面的代码放在上一步引入的 jQuery 之后, </head>
之前:
<script src="<?php echo get_template_directory_uri(); ?>/js/jquery-ias.min.js" type="text/javascript"></script>
6) 最后,把下面的代码贴在 </head>
之前(有些属性需要改为你主题中的):
<script type="text/javascript"> var ias = $.ias({ container: "#content", //包含所有文章的元素 item: ".post", //文章元素 pagination: ".navigation", //分页元素 next: ".nav-previous a", //下一页元素 }); ias.extension(new IASTriggerExtension({ text: 'Load more items', //此选项为需要点击时的文字 offset: 2, //设置此项后,到 offset+1 页之后需要手动点击才能加载,取消此项则一直为无限加载 })); ias.extension(new IASSpinnerExtension()); ias.extension(new IASNoneLeftExtension({ text: 'You reached the end.', // 加载完成时的提示 })); </script>
如果主题启用了Lazyload插件,在第二页开始之后的页面图片会加载不出来,需要加入下面的代码才行:
ias.on('rendered', function(items) { $("img.lazy").lazyload({effect:"fadeIn"}); //这里是你调用Lazyload的代码 })
Done!
偏方网 2015/01/19 16:43
现在很多网站都在搞这个功能,也算蛮好的。
daixiy 2015/01/19 18:02
看了一下效果,感觉有好也有不好的。比如打开一篇文章看后,再点后退,则页面显示不会停留在刚才打开过的文章附近,不知道看到哪里了。又要滚动鼠标上下寻找刚才看过了的文章的位置。这功能新的主题中是默认添加了吗。如果添加了,建议有开关可以选择是否使用。
Specs 2015/01/19 18:49
@ 没添加,至于你说的那个不好的,所有用到Ajax都会有这个问题。
梦想网络 2015/01/19 20:29
请问博主把不显示图片的问题修复了吗?
Specs 2015/01/19 21:14
@ 只能先取消了Lazyload了,去了影响也不大,毕竟我的图片很少~
梦想网络 2015/01/19 22:28
@ 哎,百度了一大堆,都没提到这个问题。
梦想网络 2015/01/20 14:34
@ 我已经把这个问题解决了,。。。哈哈
Specs 2015/01/20 14:36
@ 怎么弄的~
灰常记忆 2015/01/20 15:22
感觉无限加载不好
Specs 2015/01/20 19:12
@ 为什么呐~
小二苘 2015/01/20 19:30
今天尝试了各种Ajax评论分页,各种失败,郁闷死了
Specs 2015/01/21 09:23
@ 我这个用到评论分页那里应该也可以的,只是效果是下拉而不是换页
小二苘 2015/01/21 09:34
@ 我不太喜欢无限加载的
Specs 2015/01/21 09:38
@ 我的那个分页也是从别的主题弄过来的,在single.js最下面,你复制过去试下~
小二苘 2015/01/21 09:41
@ 好的,我研究研究
frank 2015/01/22 11:24
非常有帮助,学习中 !!!
JV 2015/01/22 18:57
这个js有两个个function(b, c)函数变量,把延迟加载的执行函数丢到第一个function(b, c)最后执行一遍就行了。我以前用的图片延迟加载函数是 img_lazyload(); 不知道现在有没有变。
Specs 2015/01/22 19:14
@ 我下载的这个最新版本的里面已经没有那个回调函数了
JV 2015/01/22 19:28
@ 我是从你上面的地址下载的啊。里面有这个函数。
Specs 2015/01/23 08:19
@ 我再找找~~
JV 2015/01/23 16:05
@ 还有一个小问题:贵站回复评论上,鼠标移到@xxx上会显示被@的评论信息,但如果评论ajax翻页之后就不起作用了。这个和上面的问题类似。
Specs 2015/01/23 16:08
@ 嗯,这个问题我知道,但是我在翻页那里加上那个tooltip的代码了,还是不管用
威客圈子 2015/03/09 16:37
博主的博客很不错,不知道能不能交换友链呢?如果博主有意向的话,可以加我的QQ293459572详谈
Specs 2015/03/10 09:19
@ 不是同样类型的呀~~
威客圈子 2015/03/12 09:55
@ 额,其实威客里面很多都是技术型的
半步多 2015/04/13 16:04
实现不了啊, container: "#content", //包含所有文章的元素 item: ".post", //文章元素 pagination: ".navigation", //分页元素 next: ".nav-previous a", //下一页元素用的你现在的主题,这部分该怎么修改啊!
Specs 2015/04/13 21:41
@ 修改成主题对应地方的名称
Lyc 2015/06/26 17:21
博主最后一步的属性要怎么调啊?
Specs 2015/06/26 20:35
@ 最后一步你是值说lazyload?直接跟在上面的代码后面就行了