在我的模板文件中,我获取了这样的自定义帖子数据,
最初我收到7个帖子,我需要在帖子后面写一个更多按钮,当有人点击它时,它会从wp数据库表中获取更多7个帖子。
但我不知道怎么做,我想知道,
答案 0 :(得分:2)
在这里,我已经大致了解了如何编写代码:
在function.php中创建一个ajax函数,并通过ajax调用将偏移值传递给它,并将接收到的数据附加到disply部分。
这是创建ajax函数的示例:
add_action('wp_ajax_nopriv_cyt_ajax_search','cyt_ajax_search');
add_action('wp_ajax_cyt_ajax_search','cyt_ajax_search');
function cyt_ajax_search(){
$offset = $_POST['offset'];
$args = array (
'post_type' => 'post',
'posts_per_page' =>7
'offset'=>$offset,
'meta_query' =>..........
);
$query = new WP_Query($args);
if($query->have_posts() ) :
while ( $query->have_posts() ) : $query->the_post();
endwhile;
wp_reset_postdata();
endif;
}
//前端代码,按钮单击它将调用ajax函数并传递偏移值,每次单击需要将值增加7(如果你只想加载7个帖子)并检查多少帖子如果偏移值超出了wp查询显示的总计数数据的数量,那么只需隐藏按钮
<div id ="esiSection"></div>
<span click="loadmore" data-offset='0'>Click here</span>
jQuery('.loadmore').click(function(){
var offset = parseInt(jQuery(this).attr('data-offset'));
jQuery.ajax({
url: '<?php echo admin_url('admin-ajax.php'); ?>',
type: 'POST',
data: {
'action' : 'cyt_ajax_search',
'offset' : offset ,
},
success: function(response) {
jQuery('#resiSection').append(response);
offset = offset + 7;
},
error: function(error){
console.log(error);
}
});
});