在自定义帖子类型和分类上获取相关帖子时排除当前帖子

时间:2015-12-02 作者:user742736

以下内容将返回同一类别中的其他帖子,但也将返回当前帖子。

有没有办法从查询中排除当前帖子?

$args = array(
\'post_type\'     => \'custom_post_type\',
\'tax_query\'     => array(
    array(
        \'taxonomy\'  => \'custom_taxo\',
        \'field\'     => \'term_id\',
        \'terms\'      => array(1,2,5),
        \'operator\'  => \'IN\'
    )
)
);

$query = new WP_Query( $args );

2 个回复
最合适的回答,由SO网友:Pieter Goosen 整理而成

只需添加

\'post__not_in\' => [get_queried_object_id()],
到查询参数数组。get_queried_object_id() 将返回当前查看的单个帖子的帖子ID,并且post__not_in 将跳过将ID作为数组传递给参数的帖子

SO网友:NJENGAH

您可以使用post__not_in 使用get_the_ID 在这种情况下,您的代码应该如下所示:

                $args = array(
                            \'post_type\'     => \'custom_post_type\',
                            \'tax_query\'     => array(
                                array(
                                    \'taxonomy\'  => \'custom_taxo\',
                                    \'field\'     => \'term_id\',
                                    \'terms\'      => array(1,2,5),
                                    \'operator\'  => \'IN\'
                                )
                            ),
                        \'post__not_in\' => array (get_the_ID()), 

                    );

                $query = new WP_Query( $args );
Note: 值必须是数组\'post__not_in\' => array (get_the_ID())

相关推荐

使用新的WP-Query()从循环中过滤后期格式;

嗨,我目前正在为我的博客构建一个主题。下面的代码指向最新的帖子(特色帖子)。因为这将有一个不同的风格比所有其他职位。然而我想过滤掉帖子格式:链接使用我在循环中定义的WP查询,因为它给我带来了更多的灵活性。我该怎么做呢? <?php $featured = new WP_Query(); $featured->query(\'showposts=1\'); ?> <?php while ($featured->have_post