我正在尝试利用AJAX进行分页。但是,我的get_posts()调用似乎没有从我的自定义分类法Case Studies
中找到任何结果。
Case Studies
总共有 10个帖子。Load more
,还会显示5条帖子。ajax_handler()
上-我不确定我的论点出在哪里。我已经尝试过query_posts
和get_posts()
。
jQuery(function($){
$('#loadmore').click(function(){
var column_width = $(this).data('column-width');
var max_num_pages = $(this).data('max-num-pages');
var post_type = $(this).data('type');
var button = $(this),
data = {
action:'loadmore',
query: loadmore_params.posts, // that's how we get params from wp_localize_script() function
page : loadmore_params.current_page,
security : loadmore_params.security,
columns : column_width,
max_num_pages : max_num_pages,
post_type : post_type
};
$.ajax({
url : loadmore_params.ajaxurl, // ajax handler
data : data,
type : 'POST',
beforeSend : function ( xhr ) {
button.text('Loading...');
},
// return data on succesful callback ...
success : function( data ){
if( data ) {
button.text( 'Load More' ).prev().before(data); // insert new posts
loadmore_params.current_page++;
// where to insert new posts...
$('.case-studies-container').find('.case-card').last().after( data );
// if it's the last page in the query, remove the button
// if ( loadmore_params.current_page == max_num_pages )
// button.remove();
console.log(data);
} else {
// remove the button if there's no more content to load
button.remove();
}
},
error : function(error){
console.log(error);
}
});
});
});
<?php
function ajax_handler(){
check_ajax_referer('load_more', 'security');
// prepare our arguments for the query
$args = json_decode( stripslashes( $_POST['query'] ), true );
$args['paged'] = $_POST['page'] + 1; // we need next page to be loaded
$args['post_status'] = 'publish';
$args['max_num_pages'] = $_POST['max_num_pages'];
$posts = query_posts( $args );
var_dump($posts);
if( have_posts() ) :
while( have_posts() ): the_post();
// get template part here
endwhile;
endif;
die;
}
?>
var_dump($posts)
返回array(0) {}
var_dump($args)
不返回任何信息,甚至不返回帖子ID。不确定我缺少什么或做错了吗?