最近在一个客户做一个wordpress主题定制开发的时候,由于这个主题是以移动端为主的,在文章列表页使用分页效果就不是很友好了,所以选择了使用无限下拉加载的方法。具体的实现方法现在分享给大家。1、把下面定义的AJAX加载文章的内容放到您的functions.PHP中
//AJAX加载文章列表
add_action('wp_AJAX_nopriv_AJAX_index_post','AJAX_index_post');
add_action('wp_AJAX_AJAX_index_post','AJAX_index_post');
function AJAX_index_post(){
$paged = $_POST["paged"];
$total = $_POST["total"];
$args = array(
'post_type' => 'post',
'posts_per_page'=>get_option('posts_per_page'),
'paged' => $paged,
'orderby' => 'date',
);
$the_query = new WP_query($args);
while ( $the_query->have_posts() ){
$the_query->the_post();
echo
'<li><a href="'.get_the_permalink().'" title="'.get_the_Title().'">"'.get_the_Title().'"</a></li>';
}
wp_reset_postdata();
if ( $total > $paged ) echo '<a ID="show-more" href="JavaScript:;" data-total="'.$total.'" data-paged = "'.($paged+1).'" >上拉加载更多</a>';
dIE();
}2、下面是定义的加载按钮(文字提示)函数,也放到functions.PHP文件中
//AJAX无限加载文章列表按钮
function AJAX_show_more_button(){
if( 2 > $GLOBALS["wp_query"]->max_num_pages){
return;
}
echo '<a ID="show-more" href="JavaScript:;" data-paged = "2" data-total="'.$GLOBALS["wp_query"]->max_num_pages.'" >上拉加载更多</a>';
}3、把下面的代码放到你前端需要显示文章列表的地方
<ul >
<?PHP
$args = array(
'post_type' => 'post',
);
$args['tax_query'] = array();
query_posts($args);?>
<?PHP if (have_posts()) : while (have_posts()) : the_post(); ?>
<li>
<a href="<?PHP%20the_permalink();?>" title="<?PHP the_Title();?>">
<?PHP the_Title();?>
</a>
</li>
<?PHP enDWhile; else: ?>
<p >没有找到相关内容</p>
<?PHP endif; ?>
<?PHP AJAX_show_more_button();?>//这里就是主要的地方,正常的分页这里是用的分页函数,而我们需要使用的是定义的AJAX函数
</ul>4、Js文件
<script type="text/JavaScript">
var H = false;
jquery(window).scroll(function(i) {
if (jquery("#show-more").length > 0) {
var q = jquery(window).scrolltop(),
p = jquery("#show-more").offset().top,
$this = jquery("#show-more");
if (q + jquery(window).height() >= p && H != true) {
var paged = $this.data("paged"),
total = $this.data("total");
var AJAX_data = {
action: "AJAX_index_post",
paged: paged,
total: total
};
H = true;
$this.HTML('加载中…').addClass('is-loading')
jquery.post('/wp-admin/admin-AJAX.PHP',AJAX_data,
function(data) {
jquery('#show-more').remove();
H = false;
jquery(".jubenLists").append(data);//这里是包裹文章的容器名
});
return false;
}
}
})
</script>使用以上的方法和步骤就可以完成了文章列表的无限下拉加载了,当然上面的循环体(也就是每条文章显示的内容)比较简单,我只用了一个带连接的标题,您可以根据您自己的需要修改循环体的结构,但是要注意第一条中的定义的AJAX方法中循环体要和你前端列表中默认显示出来的几条列表中的循环体一致,而且要注意相关标点符号的使用。
具体的使用过程中有什么问题大家可以到wordpress中文社区问答版块儿进行提问,我们会在第一时间给大家回复,希望以上内容能够帮助到您。
总结以上是内存溢出为你收集整理的Ajax实现WordPress文章列表无限下拉加载全部内容,希望文章能够帮你解决Ajax实现WordPress文章列表无限下拉加载所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)