您是否试图避免在 WordPress 中出现带有多个循环的重复帖子?
如果您正在运行多个 WordPress 查询以显示不同的帖子集,那么您可能会遇到此问题。有些帖子可能匹配多个循环并且会出现两次。
在本文中,我们将向您展示如何在 WordPress 中轻松避免重复显示多个循环的帖子。
重复帖子如何出现在多个 WordPress 循环中
创建自定义 WordPress 主题或自定义页面模板时,您可以在模板中使用多个WordPress 循环。
例如,一些用户可能希望显示他们最近的帖子以及他们最受欢迎的帖子。一些用户可能希望显示最近的帖子,然后显示不同类别的帖子。
现在让我们假设您最近发布的帖子也符合多个循环的条件。除非您将其排除,否则 WordPress 将再次显示它。
现在,由于您正在为每个循环动态生成帖子,因此您无法手动预测重复帖子是否会出现在循环中。
话虽如此,让我们看看在处理 WordPress 中的多个循环时如何轻松避免重复帖子。
避免多个 WordPress 循环中的重复帖子
在本教程中,我们将向您展示一些示例 WordPress 代码。然后,您可以根据自己的要求对其进行修改。
首先,让我们重新创建重复帖子问题。
在下面的示例代码中,我们显示了两个类别的帖子,而避免了重复的帖子。
‘news”posts_per_page’ => 3) ); // The Loopif ( $first_query->have_posts() ) { echo ‘
- ‘; while ( $first_query->have_posts() ) { $first_query->the_post(); //display postsecho ‘
- ‘echo the_post_thumbnail( array(50, 50) );echo get_the_title(); echo ‘
‘; } echo ‘
‘;} else { // no posts found}/* Restore original Post Data */wp_reset_postdata(); /****** The Second Query *******/$second_query = new WP_Query( array (‘category_name’ => ‘travel’,’posts_per_page’ => 3 ) ); // The Loopif ( $second_query->have_posts() ) { echo ‘
- ‘;while ( $second_query->have_posts() ) { $second_query->the_post();echo ‘
- ‘; echo the_post_thumbnail( array(50, 50) );echo get_the_title(); echo ‘
‘; }echo ‘
‘;} else { // no posts found}/* Restore original Post Data */wp_reset_postdata();?>
如您所见,此代码不会检查任一查询中的重复帖子。如果在两个类别中都找到重复的帖子,它将继续并显示重复的帖子:
让我们解决这个问题。
为了避免重复的帖子,我们需要临时存储第一个循环中显示的帖子的数据。
一旦我们有了这些信息,我们将简单地修改我们的第二个查询以排除这些帖子重新出现。
这是一个示例代码,可以避免重复的帖子出现在第二个循环中。
‘news”posts_per_page’ => 3) ); // The Loopif ( $first_query->have_posts() ) { echo ‘
- ‘; while ( $first_query->have_posts() ) { $first_query->the_post(); // Store Post IDs in an Array to reuse later$exclude[] = $post->ID; //display postsecho ‘
- ‘echo the_post_thumbnail( array(50, 50) );echo get_the_title(); echo ‘
‘; } echo ‘
‘;} else { // no posts found}/* Restore original Post Data */wp_reset_postdata(); /****** The Second Query *******/$second_query = new WP_Query( array (‘category_name’ => ‘travel’,’post__not_in’ => $exclude, // Tell WordPress to Exclude these posts’posts_per_page’ => 3 ) ); // The Loopif ( $second_query->have_posts() ) { echo ‘
- ‘;while ( $second_query->have_posts() ) { $second_query->the_post();echo ‘
- ‘; echo the_post_thumbnail( array(50, 50) );echo get_the_title(); echo ‘
‘; }echo ‘
‘;} else { // no posts found}/* Restore original Post Data */wp_reset_postdata();?>
在上面的代码中,我们将 Post ID 存储在一个数组$exclude中。之后,我们在post__not_in第二个查询中添加了参数,以排除在第一个循环中显示的帖子。
这就是您现在可以访问您的网站以查看重复帖子从第二个循环中消失的全部内容。
我们希望本文能帮助您了解如何避免在 WordPress 中使用多个循环重复显示帖子。您可能还想查看我们全面的WordPress 主题开发备忘单以获取更多提示。