wp AJAX 加载更多插件重复相同的先前帖子
wp AJAX load more plugin repeating the same previous posts
我使用 wp ajax 加载更多 plugin 单击按钮时它会重复之前的操作 post。如何修复它。在这里,我在下面分享我的代码:
<?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"]');
?>
有人能修好吗?
我只是用这个来解决我自己的问题:
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"]');
您不需要创建自定义查询。您正在使用一个插件,该插件将通过他们的短代码为您生成它。根据他们的文档,您只需为简码创建设置即可。
请参阅此处的说明 https://connekthq.com/plugins/ajax-load-more/docs/shortcode-builder/
只需将生成的短代码粘贴到您的 page/post 或带有 do_shortcode
的 php 文件中。
该插件处理查询和每页的帖子等
如果你想用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
的类别
我使用 wp ajax 加载更多 plugin 单击按钮时它会重复之前的操作 post。如何修复它。在这里,我在下面分享我的代码:
<?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"]');
?>
有人能修好吗?
我只是用这个来解决我自己的问题:
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"]');
您不需要创建自定义查询。您正在使用一个插件,该插件将通过他们的短代码为您生成它。根据他们的文档,您只需为简码创建设置即可。
请参阅此处的说明 https://connekthq.com/plugins/ajax-load-more/docs/shortcode-builder/
只需将生成的短代码粘贴到您的 page/post 或带有 do_shortcode
的 php 文件中。
该插件处理查询和每页的帖子等
如果你想用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