我创建了一个名为' award'的自定义帖子类型。我在archive-award.php
,我正在显示一个奖项列表'帖子。到现在为止还挺好。
现在我想通过AJAX点击下一个帖子,点击“加载更多”#39;按钮。这是我传递给AJAX脚本的操作:
function load_next_award_posts() {
$args = array(
'paged' => 2,
'post_type' => 'award',
'post_status' => 'publish'
);
$next_posts = new WP_Query( $args );
if( $next_posts->have_posts() ) :
while( $next_posts->have_posts() ) : $next_posts->the_post();
echo '<p>Hello</p>';
endwhile;
endif;
wp_reset_postdata();
die();
}
不幸的是,查询没有返回任何结果。如果我将post_type
更改为默认post
或page
,则一切正常。那是怎么回事?为什么查询不能使用我的自定义帖子类型?
答案 0 :(得分:0)
<a id="more_posts" href="#">Load More</a>
你的file.js
var ajaxUrl = "<?php echo admin_url('admin-ajax.php')?>";
var page = 1; // What page we are on.
var ppp = 10; // Post per page
$("#more_posts").on("click",function(){
$("#more_posts").attr("disabled",true);
$.post(ajaxUrl, {
action:"more_post_ajax",
offset: (page * ppp) + 1,
ppp: ppp
}).success(function(posts){
page++;
$(".name_of_posts_class").append(posts);
$("#more_posts").attr("disabled",false);
});
});
</script>
的functions.php
function more_post_ajax(){
$offset = $_POST["offset"];
$ppp = $_POST["ppp"];
header("Content-Type: text/html");
$args = array(
'post_type' => 'award',
'posts_per_page' => $ppp,
'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');