我让load更加ajax化。它工作得很好。但如果没有下一页的列表,我希望“加载更多”按钮消失。你能帮帮我吗?
这是html。
<div class="race_posts">
<!-- the room for ajax result: post list -->
</div>
<div class="loadmore">load-more</div>
这是ajax调用js。单击“加载更多”按钮时。
$(\'.loadmore\').on(\'click\', function(){
var data = {
\'action\': \'rnm_load_more_ajax\',
\'page\': page,
\'date_filter\': date_filter,
\'sports_name\': \'marathon-tax\',
\'compare\': compare,
\'area_pass\': area_input,
\'feature_pass\': feature_input_arr,
\'security\': rnmLoadmore.nonce
};
$.post(rnmLoadmore.ajaxurl, data, function(response){
$(\'.race_posts\').append(response);
page++;
});
});
这是处理ajax调用的一部分。
$paged = $_POST[\'page\'];
$args = array(
\'post_type\' => \'book\',
\'posts_per_page\' => 3,
\'paged\' => $paged,
);
$query = new WP_Query($args);
while($query->have_posts() ) :
$query->the_post(); ?>
<div class="ajax"> <?php the_title(); ?> </div>
<?php endwhile; wp_reset_query(); ?>
<?php wp_die();
这是我的ajax调用编码的一些部分。并且工作正常。但是当没有下一页或没有响应内容时,我希望“加载更多”按钮消失。你能给我一些帮助吗。非常感谢。
最合适的回答,由SO网友:Roniz Shakya 整理而成
我对ajax函数调用和ajax js调用做了一些简单的更改。我希望这有帮助
ajax函数调用:
$return = array();
$paged = $_POST[\'page\'];
ob_start();
$args = array(
\'post_type\' => \'book\',
\'posts_per_page\' => 3,
\'paged\' => $paged,
);
$query = new WP_Query($args);
while($query->have_posts() ):
$query->the_post(); ?>
<div class="ajax"> <?php the_title(); ?> </div>
<?php
endwhile;
wp_reset_query();
$return[\'load_post\'] = ob_get_clean();
$return[\'max_page\'] = $query->max_num_pages;
wp_send_json( $return );
wp_die();
您的ajax调用js:
(\'.loadmore\').on(\'click\', function(){
var data = {
\'action\': \'rnm_load_more_ajax\',
\'page\': page,
\'date_filter\': date_filter,
\'sports_name\': \'marathon-tax\',
\'compare\': compare,
\'area_pass\': area_input,
\'feature_pass\': feature_input_arr,
\'security\': rnmLoadmore.nonce
};
$.post(rnmLoadmore.ajaxurl, data, function(response){
if( response.load_post != ""){
$(\'.race_posts\').append(response);
page++;
if( page > response.max_page) {
$(\'.loadmore\').hide();
}
}
});
});