php文章列表无限往下加载,Ajax实现WordPress文章列表无限下拉加载

Ajax实现WordPress文章列表无限下拉加载

王超 2021-02-15 主题开发 71 次

最近在一个客户做一个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

'

"'.get_the_title().'"';

}

wp_reset_postdata();

if ( $total > $paged ) echo '上拉加载更多';

die();

}

2、下面是定义的加载按钮(文字提示)函数,也放到functions.php文件中//ajax无限加载文章列表按钮

function ajax_show_more_button(){

if( 2 > $GLOBALS["wp_query"]->max_num_pages){

return;

}

echo 'max_num_pages.'" class="show-more m-feed–loader">上拉加载更多';

}

3、把下面的代码放到你前端需要显示文章列表的地方

$args = array(

'post_type' => 'post',

'posts_per_page'=>get_option('posts_per_page'),

'orderby' => 'date',

);

$args['tax_query'] = array();

query_posts($args);?>

没有找到相关内容

<?php ajax_show_more_button();?>//这里就是主要的地方,正常的分页这里是用的分页函数,而我们需要使用的是定义的ajax函数

4、js文件

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;

}

}

})

使用以上的方法和步骤就可以完成了文章列表的无限下拉加载了,当然上面的循环体(也就是每条文章显示的内容)比较简单,我只用了一个带连接的标题,您可以根据您自己的需要修改循环体的结构,但是要注意第一条中的定义的ajax方法中循环体要和你前端列表中默认显示出来的几条列表中的循环体一致,而且要注意相关标点符号的使用。

具体的使用过程中有什么问题大家可以到WordPress中文社区问答版块儿进行提问,我们会在第一时间给大家回复,希望以上内容能够帮助到您。

WordPress日记主要承接WordPress主题定制开发、PSD转WordPress、WordPress仿站以及以WordPress为管理后端的小程序、APP,我们一直秉持“做一个项目,交一个朋友”的理念,希望您是我们下一个朋友。如果您有WordPress主题开发需求,可随时联系QQ:919985494

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实现分页Ajax无限功能,可以按照以下步骤进行: 1. 在WordPress主题中创建一个新的页面模板,命名为“ajax-pagination.php”(或者其他你喜欢的名字)。 2. 在模板中添需要分页的内容。 3. 在模板中添一个按钮或链接,用于更多内容。 4. 使用jQuery编写Ajax代码,将按钮或链接与模板中的内容连接起来。 5. 在functions.php文件中添一个新的函数,用于处理Ajax请求。 6. 编写一个新的WordPress查询,用于获取下一页的内容。 7. 将查询结果返回给Ajax请求,并将其添到页面上。 以下是一个简单的示例代码,演示如何实现分页Ajax无限功能: 在ajax-pagination.php文件中,添以下代码: ``` <div id="content"> <?php $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; $args = array( 'post_type' => 'post', 'posts_per_page' => 3, 'paged' => $paged ); $query = new WP_Query($args); if ($query->have_posts()) : while ($query->have_posts()) : $query->the_post(); // 输出文章内容 endwhile; endif; ?> </div> <div id="load-more"> <a href="#">更多</a> </div> ``` 在JavaScript文件中,添以下代码: ``` jQuery(document).ready(function($) { $('#load-more a').click(function() { var button = $(this), data = { 'action': 'load_more', 'query': loadmore_params.posts, 'page': loadmore_params.current_page }; $.ajax({ url: loadmore_params.ajaxurl, data: data, type: 'POST', beforeSend: function(xhr) { button.text('正在...'); }, success: function(data) { if (data) { button.text('更多').prev().before(data); loadmore_params.current_page++; if (loadmore_params.current_page == loadmore_params.max_page) button.remove(); } else { button.remove(); } } }); return false; }); }); ``` 在functions.php文件中,添以下代码: ``` add_action('wp_ajax_load_more', 'load_more'); add_action('wp_ajax_nopriv_load_more', 'load_more'); function load_more() { $query = json_decode(stripslashes($_POST['query']), true); $query['paged'] = $_POST['page'] + 1; $posts = new WP_Query($query); if ($posts->have_posts()) { while ($posts->have_posts()) { $posts->the_post(); // 输出文章内容 } } die; } ``` 以上代码仅仅是一个示例,你需要根据自己的实际情况进行修改和调整。但是,这个示例可以帮助你了解如何使用WordPressAjax实现分页Ajax无限功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值