获取最初在您的
load_more()
功能-
$no_of_posts = $query->found_posts;
并将其传递给Ajax结果。然后,通过与已返回的文章进行比较,可以隐藏“加载更多”按钮。这是完整的代码。
函数.php
add_action('wp_ajax_nopriv_load_more', 'load_more');
add_action('wp_ajax_load_more', 'load_more');
function load_more(){
$paged = $_POST["page"]+1;
$args = array(
'post_type' => 'customer_testimonial',
'posts_per_page' => 2,
'paged' => $paged,
'orderby' => 'date'
);
$query = new WP_Query( $args );
$no_of_posts = $query->found_posts;
$result['count'] = $no_of_posts;
if( $query->have_posts() ):
while( $query->have_posts() ): $query->the_post();
$result['data'][] = array(
"name" => get_field('customer_name'),
"area" => get_field('area'),
"review" => get_field('review')
);
endwhile;
endif;
echo json_encode($result);
wp_reset_postdata();
die();
}
模板文件脚本
<script>
jQuery('#more:not(.loading)').click(function(){
var page = jQuery(this).data('page');
var new_page = page+1;
var current = jQuery(this);
var no_of_posts=0;
current.addClass('loading');
$.ajax({
url : ajax.ajax_url,
type : 'post',
dataType : 'json',
data : {
page : page,
action : 'load_more'
},
error : function(response){
console.log(response);
},
success : function( response ){
current.data('page', new_page);
no_of_posts=response.count;
for(var i = 0; i < response.data.length; i++){
var html =''+
'<div class="col-md-9">'+
'<div class="row">'+
'<div class="col-md-10 offset-md-1">'+
'<p class="name">'+ response.data[i].name +'</p>'+
'<p class="location">'+ response.data[i].area +'</p>'+
'</div>'+
'</div>'+
'<div class="row">'+
'<div class="col-md-1 p-0">'+
'</div>'+
'<div class="col-md-10">'+
'<p class="testimonial">'+ response.data[i].review +'</p>'+
'</div>'+
'<div class="col-md-1 p-0">'+
'</div>'+
'</div>'+
'<hr>'+
'</div>';
jQuery('#testimonial_container').append(html);
current.removeClass('loading');
if((eval(new_page)*2) >= eval(no_of_posts))
jQuery('#more').hide();
}
}
});
});
</script>