首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从合并的Wordpress循环中隐藏重复的帖子

从合并的Wordpress循环中隐藏重复的帖子
EN

Stack Overflow用户
提问于 2016-02-17 23:03:13
回答 1查看 155关注 0票数 0

我已经通过合并两个现有的查询创建了一个Wordpress查询,我如何阻止第二个查询显示第一个查询已经显示的帖子?

代码语言:javascript
复制
$args_for_query1 = array(
    'meta_key' => '_mcf_homeoperator',
    'meta_value' => 'Yes',
    'posts_per_page' => 14,
    'cat' => 521,
    'post__in'       => get_field('srtby_homepage', 'option', false, false),
    'orderby'        =>  'post__in'
);

$args_for_query2 = array(
    'posts_per_page' => 20,
    'cat' => 12,22411,
    'post__in'       => get_field('srtby_slotspage', 'option', false, false),
    'orderby'        =>  'post__in',
);

$query1 = new WP_Query($args_for_query1);
$query2 = new WP_Query($args_for_query2);

// Main Loop
$args=array(
    'paged' => $paged,
    'showposts' => 20,
);

$wp_query = new WP_Query($args);
$wp_query->posts = array_merge( $query1->posts, $query2->posts );
$wp_query->post_count = $query1->post_count + $query2->post_count;


if ($wp_query->have_posts()) : while ($wp_query->have_posts()) : $wp_query->the_post();
EN

回答 1

Stack Overflow用户

发布于 2016-02-17 23:49:14

首先,你无缘无故地运行了第三次查询($query),因为你无论如何都会覆盖其中的帖子。

代码语言:javascript
复制
if ($query1->have_posts())
{
    if ($query2->have_posts())
    {
        foreach ($query1->posts as $post)
        {
            foreach ($query2->posts as $key => $post_)
            {
                if ($post->ID == $post_->ID)
                {
                    unset($query2->posts[$key]);
                    break;
                }
            }
        }
        if (count($query2->posts) > 0)
        {
            $query1->posts=array_merge($query1->posts, $query2->posts);
            $query1->post_count=count($query1->posts);
        }
    }
}
else
{
    //whatever you do if there are no posts
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35460267

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档