昨
晚看了bigfa的一篇文章,也想试试wordpress文章无限加载ajax,不过他的代码比较难看懂,毕竟不是专业的。于是想到了用卢哥主题,从他那儿扒了一段下来。怎么说呢?分页加载和无限加载,还有一种无限下拉加载,三种各有优缺点。分页加载有那么一点利于SEO,对于单页显示的主题来说无限加载比较适应用户的体验,无限下拉没研究过,个人也不大喜欢。昨晚在修改本站底部的时候,想到了无限加载,于是就摆弄了一下,隐藏分页换上无限加载ajax。
下面这些代码来自卢哥主题,需要jQuery库的支持,本站使用的是1.8.3版。
首先是在首页文章列表下调用“下一页”函数。
在此之前有分页导航的要先去掉,类似pagination()这样的函数。用下面的代码进行替换。
<?php $link_next_page = get_next_posts_link(__('加载更多...')); if(!empty($link_next_page)){ ?> <div id="load-posts" class="load-more"> <div class="next-page"> <?php echo $link_next_page; ?> </div> </div> <?php } ?>
然后是js,可以直接放到jquery里面。注意里面几个ID和类。
// 文章无限加载ajax // 处理浏览器地址 function addUrlPara(url, para) { var strArray = new Array(); strArray = url.split('?'); if (strArray.length == 1) { if (url.indexOf('#') != -1) { strArray = url.split('#'); return strArray[0] + '?' + para + '#' + strArray[1] } return url + '?' + para } else { if (url.indexOf(para) != -1) return url; return strArray[0] + '?' + para + '&' + strArray[1] } } function removeUrlPara(url, para) { var strArray = new Array(); strArray = url.split(para); if (strArray.length == 1) { strArray = url.split('?' + para); return strArray[0] } else { if (strArray[1].indexOf('&') != -1) { strArray = url.split(para + '&'); return strArray[0] + strArray[1] } else { strArray = url.split('?' + para); return strArray[0] + strArray[1] } } } // ajax部分 $("#load-posts a").live("click", function() { window.history.pushState({time: new Date().getTime()},"", removeUrlPara($(this).attr("href"), 'target=post')); $('.load-more').fadeTo("normal", 0.4); $.ajax({ type: "POST", url: addUrlPara($(this).attr("href"), 'target=post'), success: function(data) { result = $(data).find(".post-box"); link = $(data).find(".load-more"); $(".load-more").remove(); $("#left").append(result); $("#left").append(link); document.title = $(data).filter("title").text(); $('.load-more').fadeTo("normal", 1); } }); return false });
剩下就是CSS了,根据个人的站点进行样式化。That's all.
本站文章除注明转载/出处外,均为本站原创或翻译。若要转载但请务必注明出处,尊重他人劳动成果。
转载请注明出处链接 : https://www.inlojv.com/3947.html