【jQuery Ajax 分页 WordPress 版】

<背景颜色选择: 绿 ><字体大小选择: >

jQuery Ajax 分页技术已经应用在了很多的wordpress主题上,不过本站还没有进行实践,但是看着那种滑动很是羡慕,于是先收藏一篇实现方法的文章,等到那傲天心血来潮,哼哼...再修改之。如果你现在就手痒痒了,那么就按照下面的方法开始进行吧,不过,友情提示一下:修改前请本分自己的文件,以免到时候哭鼻子。

温馨提示: 此处内容已经设置为隐藏,需要点击一下左侧广告并[评论本文]后才能查看。

二.文章列表格式
在你的文章列表页面(首页 index.php、归档 archive.php )需要确保有以下类似的结构

<!-- 包含所有文章的容器 -->
<div id="content">
     <!-- 各文章的容器 -->
    <div class="post"></div>
     <div class="post"></div>
     <div class="post"></div>
     <div class="post"></div>
     <div class="post"></div>
 </div>

三.加入默认导航

因为 Ajax 分页每次获取的是下一页的内容,因此只需调用 WordPress 的默认导航。在你的 index.php (或是其他文章列表页面)加入以下代码,生成默认的 WordPress 导航。

<div id="pagination">< ?php next_posts_link(__('LOAD MORE')); ?></div>

四.Ajax 获取下一页

在你的主题 js 文件里加入以下代码

// 使用 live() 使 js 对通过 Ajax 获得的新内容仍有效
     $("#pagination a").live("click", function(){
         $(this).addClass("loading").text("LOADING...");
         $.ajax({
     type: "POST",  
           url: $(this).attr("href") + "#content", 
            success: function(data){ 
                result = $(data).find("#content .post"); 
                nextHref = $(data).find("#pagination a").attr("href"); 
                // 渐显新内容
                 $("#content").append(result.fadeIn(300)); 
                $("#pagination a").removeClass("loading").text("LOAD MORE");
                 if ( nextHref != undefined ) { 
                    $("#pagination a").attr("href", nextHref); 
                } else { 
                // 若没有链接,即为最后一页,则移除导航
                     $("#pagination").remove(); 
                }  
           }  
       });  
       return false; 
    });

五.滚动触发翻页

如果想当鼠标滚动到接近页面底部时自动翻页,则可以把代码改成下面的样式

// 给浏览器窗口绑定 scroll 事件
 $(window).bind("scroll",function(){
 // 判断窗口的滚动条是否接近页面底部
 if( $(document).scrollTop() + $(window).height() > $(document).height() - 10 ) { 
    $(this).addClass('loading').text('LOADING...'); 
    $.ajax({ 
        type: "POST", 
        url: $(this).attr("href") + "#content", 
        success: function(data){ 
            result = $(data).find("#content .post");  
           nextHref = $(data).find("#pagination a").attr("href"); 
            // 渐显新内容 
            $("#content").append(result.fadeIn(300));  
           $("#pagination a").removeClass("loading").text("LOAD MORE"); 
            if ( nextHref != undefined ) { 
                $("#pagination a").attr("href", nextHref);  
           } else {
             // 若没有链接,即为最后一页,则移除导航
                 $("#pagination").remove(); 
            } 
        } 
    }); 
} 
});

六.添加导航 css

为导航添加一段 css 美化一下,另外还可以准备一张 gif 图来表示正在加载,下面是 Melody 的样式:

#pagination {padding: 20px 0 0 30px; } 
#pagination .nextpostslink {width: 600px; color: #333; text-decoration: none; display: block; padding: 9px 0; text-align: center; font-size: 14px; } 
#pagination .nextpostslink:hover {background-color: #cccccc; text-decoration: none; border-radius: 5px; -moz-border-radius: 5px; -webkit-border-radius: 5px; } 
#pagination .loading {background: url("images/loading.gif") 240px 9px no-repeat; color: #555; }
#pagination .loading:hover {background-color: transparent; cursor: default; }

声明:本站文章除特别注明外,相关代码、视频、软件、文字等均搜集于网络,版权归原作者所有。