半复杂的海关分类问题

时间:2012-08-27 作者:Bram

鉴于以下产品:

产品1

Naam分类“品牌”价值“Joolz”部分产品2

Naam分类“品牌”价值“Joolz”部分产品3

Naam分类法“品牌”部分价值“Costa”分类法“分类”部分价值“自行车”如何检索与给定品牌相关产品的所有分类价值,因此我给值“Costa”我得到自行车,如果我给值“Joolz”,我得到“椅子”和“汽车”

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

从a开始tax_query 要获取帖子,请使用\'categorie\' 您想要的分类术语。假设自定义查询:

$tax_query_args = array(
    \'tax_query\' => array(
        array(
            \'taxonomy\' => \'categorie\',
            \'field\' => \'slug\',
            \'terms\' => array( \'costa\' )
        ),
);
$tax_query = new WP_Query( $tax_query_args );
然后,逐步完成该查询,并使用get_the_terms() 返回brand 每个帖子的分类术语,并将它们添加到数组中:

$tax_query_brand_terms = array();

if ( $tax_query->have_posts() ) : while ( $tax_query->have_posts() ) : $tax_query->the_post();

    $post_brand_terms = get_the_terms( get_the_ID(), \'brand\' );
    if ( is_array( $post_brand_terms ) ) {
        $tax_query_brand_terms = array_merge( $tax_query_brand_terms, $post_brand_terms );
    }

endwhile; endif;
wp_reset_postdata();
现在$tax_query_brand_terms 数组应填充所有brand 在指定的categorie 分类术语。

如果要将其包装在函数中,则允许传递categorie 分类术语作为参数:

function wpse63233_tax_query_brand_terms( $categorie = false ) {
    if ( false == $catgorie ) {
        return false;
    }
    // Also, put in some error checking here,
    // e.g. comparing $categorie against
    // get_terms( \'categorie\' )

    // Query \'categorie\' posts
    $tax_query_args = array(
        \'tax_query\' => array(
            array(
                \'taxonomy\' => \'categorie\',
                \'field\' => \'slug\',
                \'terms\' => array( $categorie )
            ),
    );
    $tax_query = new WP_Query( $tax_query_args );

    // Get \'brand\' terms from all returned posts
    $tax_query_brand_terms = array();

    if ( $tax_query->have_posts() ) : while ( $tax_query->have_posts() ) : $tax_query->the_post();

        $post_brand_terms = get_the_terms( get_the_ID(), \'brand\' );
        if ( is_array( $post_brand_terms ) ) {
            $tax_query_brand_terms = array_merge( $tax_query_brand_terms, $post_brand_terms );
        }

    endwhile; endif;
    wp_reset_postdata();

    // Return the array
    return $tax_query_brand_terms;
}

结束

相关推荐

从wp_Term_Taxonomy获取父级

是否有内置的wordpress函数让我查找wp_term_taxonomy 如果我通过TT_ID 托伊特?类似于get_value ( $wp_table_name, $id_fieldname, $id_value, $the_field_info_to_retrieve ) 示例get_value ( \"wp_term_taxonomy\", \"term_taxonomy_id\", \"parent\");