如何在自定义WP_Query Ajax上实现分页

我想用Ajax在自定义循环中对我的WordPresspost进行分页,所以当我点击加载时会出现更多按钮post。

我的代码:

 'post', 'posts_per_page' => $postsPerPage, 'cat' => 1 ); $loop = new WP_Query($args); while ($loop->have_posts()) : $loop->the_post(); ?> 

<?php endwhile; echo 'Load More'; wp_reset_postdata(); ?>

此代码不会分页。 有一个更好的方法吗?

Load More按钮需要向服务器发送ajax请求,并且可以使用jQuery或纯JavaScript将返回的数据添加到现有内容中。 假设您使用jQuery,这将启动代码。

自定义Ajax处理程序(客户端)

 Load More 

改成:

 Load More 

Javascript: – 把它放在文件的底部。

 // var ajaxUrl = ""; var page = 1; // What page we are on. var ppp = 3; // Post per page $("#more_posts").on("click",function(){ // When btn is pressed. $("#more_posts").attr("disabled",true); // Disable the button, temp. $.post(ajaxUrl, { action:"more_post_ajax", offset: (page * ppp) + 1, ppp: ppp }).success(function(posts){ page++; $(".name_of_posts_class").append(posts); // CHANGE THIS! $("#more_posts").attr("disabled",false); }); }); // 

自定义Ajax处理程序(服务器端) PHP – 将它放在functions.php文件中。

 function more_post_ajax(){ $offset = $_POST["offset"]; $ppp = $_POST["ppp"]; header("Content-Type: text/html"); $args = array( 'post_type' => 'post', 'posts_per_page' => $ppp, 'cat' => 1, 'offset' => $offset, ); $loop = new WP_Query($args); while ($loop->have_posts()) { $loop->the_post(); the_content(); } exit; } add_action('wp_ajax_nopriv_more_post_ajax', 'more_post_ajax'); add_action('wp_ajax_more_post_ajax', 'more_post_ajax');