如何根据与术语一起使用的术语对术语进行分类?

时间:2014-10-20 作者:Pete

如何获取具有一个或多个特定兄弟术语的所有分类术语?

例如,假设我有以下分类法。术语列在分类下面,括号表示有许多文章使用了术语。

age 分类

十六(用于3个帖子)二十七(用于0个帖子)三十四(用于12个帖子)eye_color 分类

蓝色(用于5篇帖子)

  • 棕色(用于10篇帖子)
  • 绿色(用于0篇帖子)
    • 我的愿望是获得所有terms 在内部eye_color 即:

      将帖子与thirty-four 在一个或多个帖子上当然,我知道get_terms() 有一个hide_empty 争论,但这只完成了我想要的一半。

      更新:下面的注释链接到一个函数,该函数允许您根据单个分类法的兄弟术语查找术语。。。但我想找到基于多种分类法的兄弟术语的术语。

      简单地说,我想:

      从中选择所有术语taxonomy A 用于同时具有Term 1 from Taxonomy BTerm 2 from Taxonomy C.

      有什么想法吗?

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

    因此,对于这类规则非常复杂的问题,我的解决方案是避免只为我的解决方案使用新的SQL,因为如果你必须向初学者解释它,它会很棘手。

    我的解决方案:

    function get_term_union( $taxonomy, $tax_query, $post_type = \'post\' ){
        $args = array(
            \'post_type\' => $post_type,
            \'tax_query\' => $tax_query,
            \'fields\' => \'ids\',
        );
        $posts = new WP_Query( $args );
    
        $terms = array();
    
        foreach( $posts as $post_id ){
            $terms = array_merge( $terms, wp_get_post_terms( $post_id, $taxonomy, array( \'fields\' => \'ids\' ) ) );
        }
    
        $terms = array_unique( $terms );
    
        return $terms;
    }
    
    // Usage
    $tax_query = array(
        \'relation\' => \'AND\',
        array(
            \'taxonomy\' => \'taxonomy_B\',
            \'field\'    => \'slug\',
            \'terms\'    => \'term_A\',
        ),
        array(
            \'taxonomy\' => \'taxonomy_C\',
            \'field\'    => \'slug\',
            \'terms\'    => \'term_B\',
        ),
    );
    
    // This will return you all the term id\'s for `taxonomy_A`
    var_dump( get_term_union( \'taxonomy_A\', $tax_query ) );
    
    如果此解决方案不符合您的需要,请告诉我,我将尝试修复它。

    向您致意,

    结束

    相关推荐

    获取Term_id-Taxonomy元数据插件

    我一直在到处找,但找不到任何方法来实现这一目标。我正在使用Taxonomy Metadata plugin 我正在尝试显示创建的自定义元数据。为此,我使用:get_term_meta($term_id, \'my_metadata\', TRUE);. 问题是我找不到获取term\\u id的方法。我在循环中的模板页中。以下是我尝试过的:$term = get_term_by(\'name\', \'name\', \'custom_taxonomy\'); $termid = $term->

    如何根据与术语一起使用的术语对术语进行分类? - 小码农CODE - 行之有效找到问题解决它

    如何根据与术语一起使用的术语对术语进行分类?

    时间:2014-10-20 作者:Pete

    如何获取具有一个或多个特定兄弟术语的所有分类术语?

    例如,假设我有以下分类法。术语列在分类下面,括号表示有许多文章使用了术语。

    age 分类

    十六(用于3个帖子)二十七(用于0个帖子)三十四(用于12个帖子)eye_color 分类

    蓝色(用于5篇帖子)

  • 棕色(用于10篇帖子)
  • 绿色(用于0篇帖子)
    • 我的愿望是获得所有terms 在内部eye_color 即:

      将帖子与thirty-four 在一个或多个帖子上当然,我知道get_terms() 有一个hide_empty 争论,但这只完成了我想要的一半。

      更新:下面的注释链接到一个函数,该函数允许您根据单个分类法的兄弟术语查找术语。。。但我想找到基于多种分类法的兄弟术语的术语。

      简单地说,我想:

      从中选择所有术语taxonomy A 用于同时具有Term 1 from Taxonomy BTerm 2 from Taxonomy C.

      有什么想法吗?

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

    因此,对于这类规则非常复杂的问题,我的解决方案是避免只为我的解决方案使用新的SQL,因为如果你必须向初学者解释它,它会很棘手。

    我的解决方案:

    function get_term_union( $taxonomy, $tax_query, $post_type = \'post\' ){
        $args = array(
            \'post_type\' => $post_type,
            \'tax_query\' => $tax_query,
            \'fields\' => \'ids\',
        );
        $posts = new WP_Query( $args );
    
        $terms = array();
    
        foreach( $posts as $post_id ){
            $terms = array_merge( $terms, wp_get_post_terms( $post_id, $taxonomy, array( \'fields\' => \'ids\' ) ) );
        }
    
        $terms = array_unique( $terms );
    
        return $terms;
    }
    
    // Usage
    $tax_query = array(
        \'relation\' => \'AND\',
        array(
            \'taxonomy\' => \'taxonomy_B\',
            \'field\'    => \'slug\',
            \'terms\'    => \'term_A\',
        ),
        array(
            \'taxonomy\' => \'taxonomy_C\',
            \'field\'    => \'slug\',
            \'terms\'    => \'term_B\',
        ),
    );
    
    // This will return you all the term id\'s for `taxonomy_A`
    var_dump( get_term_union( \'taxonomy_A\', $tax_query ) );
    
    如果此解决方案不符合您的需要,请告诉我,我将尝试修复它。

    向您致意,

    相关推荐

    如何控制根据Taxonomy术语显示什么模板?

    我正在建立一个商业目录,并将给出一些背景,然后在最后有2个问题。The development URL is: http://svcta.lainternet.biz/The website I am rebuilding is: https://www.visitsimivalley.com/当前网站要求每个分类法类型具有唯一的业务概要文件。例如,如果您是一家酒店,并且您也有会议室和婚礼场地,那么您最终会得到3个列表,一个用于酒店,一个用于会议,一个用于婚礼。我希望有一个主配置文件,其中包含我们将显示的