最后我发现不可能更新分页。我加载下一批帖子的方式是设置post offset, 并使用“加载更多”按钮。
因此,在ajax调用中加载更多帖子时,需要传递offset value:
$.ajax({
url: \'/wp-admin/admin-ajax.php\',
type: "POST",
data: {
\'action\': \'filter_posts\',
\'selected_options\':selected_options,
\'offset\':postoffset
}//etc...
由于该偏移值将始终更改,因此需要将该值存储在变量中。上面,我使用了“postoffset”
确定偏移值的方法很简单。您可以使用jquery计算当前页面上的帖子数量:
var postoffset = $(\'.hentry\').length;
在哪里。hentry是我的博士后班的名字。
在php脚本中收到post偏移量后,可以这样设置:
$args= array
(
\'offset\'=>$offset,
\'post_type\'=>$post_type,
\'paged\'=>$paged,
\'posts_per_page\'=>9,
\'orderby\' => \'title\',
\'order\' => \'ASC\'
);
然后将其插入您的query\\u args(以及确定上面的偏移量,我添加了一个“posts\\u per\\u page”选项,可以清楚地看到额外加载的9篇文章,我的文章偏移量每次增加9篇):
$posts=query_posts( $args);
要配置“加载更多”按钮而不是使用分页,您可以在页面上放置一个div或图片,并为其提供一个ID,例如:
<div id="load-more">LOAD MORE </div>
以及jquery:
function load_more_button_listener($){
$(\'#load-more\').click(function(event){
event.preventDefault();
var postoffset = $(\'.hentry\').length;
// console.log("offset: "+postoffset);
//call the original ajax function to load more posts, with the new offset:
load_more_posts($,postoffset);
});
}