我使用wp ajax加载了更多plugin,同时点击按钮,它重复了相同的上一篇文章。如何解决。在这里,我在下面分享我的代码:
<?php
$the_query = new WP_Query( array(
'posts_per_page'=>10,//on loading page i show 10 after click load more i want to show other posts
'post_type'=>'post-name',
'category_name' => 'A-E',
'orderby'=> 'title',
'order' => 'ASC',
'paged' => get_query_var('paged') ? get_query_var('paged') : 1)
);
?>
<?php while ($the_query -> have_posts()) : $the_query -> the_post(); ?>
// here I print the following data
<?php
endwhile;
?>
<?php
echo do_shortcode('[ajax_load_more post_type="post-name" posts_per_page="10" category="a-e" button_label="Load More"]');
?>
有人可以修复它吗?
答案 0 :(得分:1)
如果要使用ajax-load-more
获取下一组页面,则必须使用offset参数。 ajax-load-more
插件必须获取WP_Query具有的下一个帖子。因此WP_Query和ajax-load-more
必须查询相同的页面。首先,通过添加order
和orderby
参数,将短代码更改为与WP_Query相同:
[ajax_load_more post_type="post-name" posts_per_page="10" order="ASC" orderby="title" category="a-e" button_label="Load More"]
然后像这样添加offset=(get_query_var('paged') ? get_query_var('paged') : 1)*10
:
[ajax_load_more post_type="post-name" offset='.((get_query_var('paged') ? get_query_var('paged') : 1)*10).' posts_per_page="10" order="ASC" orderby="title" category="a-e" button_label="Load More"]
注意:好像ajax-load-more
并不了解-
,因此您必须将category
或post_type
用,
分开。除非您实际上有一个名为a-e
答案 1 :(得分:0)
我只是用它来解决自己的问题:
while ( $query->have_posts() ) : $query->the_post();
$do_not_duplicate[] = $post->ID; // Store post ID in array
// Other loop actions could go here
endwhile; wp_reset_query();
$post__not_in = ($do_not_duplicate) ? implode(',', $do_not_duplicate) : '';
echo do_shortcode('[ajax_load_more post__not_in="'. $post__not_in .'" post_type="post-name" posts_per_page="10" category="a-e" button_label="Load More"]');
答案 2 :(得分:0)
您无需创建自定义查询。您正在使用的插件将通过其短代码为您生成该插件。根据他们的文档,您可以只为简码创建设置。
在此处查看说明https://connekthq.com/plugins/ajax-load-more/docs/shortcode-builder/
只需将生成的简码粘贴到您的页面/帖子中,或使用HATEOAS
粘贴到您的php文件中即可。
该插件处理查询和每页的帖子等。