带有 and , or 条件的 Wordpress 分类查询

Posted

技术标签:

【中文标题】带有 and , or 条件的 Wordpress 分类查询【英文标题】:Wordpress taxonomy query with both and , or condition 【发布时间】:2018-10-04 18:57:23 【问题描述】:

我有 product 帖子类型,我有 product_cat 是分类法。在 product_cat 我有 red, hard, soft, pen 整体。

所以我必须让产品变红,变硬或变软

我怎样才能得到这个?

对于同时属于红色和硬性和软性的产品,我可以使用以下查询

 $args = array(
        'post_status' => 'publish',
        'posts_per_page' => -1,
        'tax_query' => array(
          'relation' => 'AND',
                array(
                    'taxonomy' => 'product_cat',
                     'field' => 'slug',
                     'terms' => 'red'
                      ),
                     array(
                     'taxonomy' => 'product_cat',
                     'field' => 'slug',
                     'terms' => 'hard'
                      ),
                     array(
                     'taxonomy' => 'product_cat',
                     'field' => 'slug',
                     'terms' => 'soft'
                      )
                      ),
                     'post_type' => 'product',
                     'orderby' => 'title',
                     );

但我需要的是红色是必须的,无论是软的还是硬的。 即(red && (soft||hard ))

请帮忙。

【问题讨论】:

【参考方案1】:

你可以试试这个方法:

'tax_query' => array(
        'relation' => 'AND',
        array(
            'taxonomy' => 'product_cat',
            'field'    => 'slug',
            'terms'    => array( 'red' ),
        ),
        array(
            'relation' => 'OR',
                array(
                    'taxonomy' => 'product_cat',
                    'field'    => 'slug',
                    'terms'    => array( 'hard' ),
                ),
                array(
                    'taxonomy' => 'product_cat',
                    'field'    => 'slug',
                    'terms'    => array( 'soft' ),
                ),
        ),
    ),

未经测试,但它应该可以工作!

如果没有,这里有一些有用的链接:

https://codex.wordpress.org/Class_Reference/WP_Query

https://10up.com/blog/2013/wordpress-mixed-relationship-taxonomy-queries/

【讨论】:

以上是关于带有 and , or 条件的 Wordpress 分类查询的主要内容,如果未能解决你的问题,请参考以下文章

SQL:如何在带有“NOT IN”条件的“Where”子句中使用“and”和“or”

在 AND 内具有多个 OR 条件的 SQL 查询返回 null 或空

OR 条件的流利断言

mybatis——逆向工程中 where (条件1)and (条件2 or 条件3 or 条件4)

条件查询中的多or和and条件结合

C# 中的逻辑和条件 AND、OR 有啥区别? [复制]