WP_Query - Exclude Posts

时间:2017-11-29 作者:Davide Prevosto

我们有一个带有以下参数的自定义WP\\U查询:https://pastebin.com/drbw0NAG

$args = [
    \'post_type\'      => \'post\',
    \'post_status\'    => \'publish\',
    \'posts_per_page\' => $post_number + 1,
    \'paged\'          => ( get_query_var( \'paged\' ) ) ? get_query_var( \'paged\' ) : 1,
    \'tax_query\'      => [
        [
            \'taxonomy\'         => $taxonomy,
            \'field\'            => \'term_id\',
            \'terms\'            => $category_id,
            \'include_children\' => false
        ],
    ],
];
我们希望排除那些也分配给子类别的帖子。

我的意思是,我们有一些条款:

--父级1

--父级2

------儿童1

--父级3

我们希望在父级2中获得帖子,但是not 这些也分配给子1。

有可能吗?你有什么建议吗?

谢谢

1 个回复
最合适的回答,由SO网友:Jacob Peattie 整理而成

对于不在给定类别子类别中的帖子,您需要进行第二次税务查询。要做到这一点,你需要获得孩子们的身份证。这是可能的get_term_children():

$args = [
    \'post_type\'      => \'post\',
    \'post_status\'    => \'publish\',
    \'posts_per_page\' => $post_number + 1,
    \'paged\'          => ( get_query_var( \'paged\' ) ) ? get_query_var( \'paged\' ) : 1,
    \'tax_query\'      => [
        [
            \'taxonomy\'         => $taxonomy,
            \'field\'            => \'term_id\',
            \'terms\'            => $category_id,
            \'include_children\' => false
        ],
        [
            \'taxonomy\' => $taxonomy,
            \'field\'    => \'term_id\',
            \'terms\'    => get_term_children( $category_id, $taxonomy ),
            \'operator\' => \'NOT IN\'
        ],
    ],
];

结束

相关推荐

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

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