0

我正在尝试借助类别/子类别将发布者、主题和作者添加到单个产品中。这是经过数小时编码/和复制后的样子(WooCommerce tbh 非常新鲜)当前状态的样子

这就是我得到的,但它显示了所有子类别,不仅是与产品关联的子类别,这是我正在使用的代码

    function get_product_subcategories_list( $category_slug ){
    $terms_html = array();
    $taxonomy = 'product_cat';
    // Get the product category (parent) WP_Term object
    $parent = get_term_by( 'slug', $category_slug, $taxonomy );
    // Get an array of the subcategories IDs (children IDs)
    $children_ids = get_term_children( $parent->term_id, $taxonomy );

    // Loop through each children IDs
    foreach($children_ids as $children_id){
        $term = get_term( $children_id, $taxonomy ); // WP_Term object
        $term_link = get_term_link( $term, $taxonomy ); // The term link
        if ( is_wp_error( $term_link ) ) $term_link = '';
        // Set in an array the html formated subcategory name/link
        $terms_html[] = '<a href="' . esc_url( $term_link ) . '" rel="tag" class="' . $term->slug . '">' . $term->name . '</a>';
    }
    return '<span class="subcategories-' . $category_slug . '">' . implode( ', ', $terms_html ) . '</span>';
}
    add_action('woocommerce_single_product_summary','monolith_cat_scan', 31);
        function monolith_cat_scan() {
        echo '<p>Topic : ';
            echo get_product_subcategories_list( 'topics' );
        echo '</p>';
        echo '<p>Publisher : ';
              echo get_product_subcategories_list( 'publishers' );
        echo '</p>';
        echo '<p>Author: ';
              echo get_product_subcategories_list( 'authors' );
        echo '</p>';
        }

但是我不能让整个事情像我想要的那样工作并获得单一产品的子类别,在这个例子中只有灵性,SOUNDS TRUE INC(只有出版商中的子猫)和艾伦瓦茨应该在那里。

我会很感激每一个帮助!

4

1 回答 1

0

我得到了一个工作代码(我知道它看起来并不漂亮,但这是我能做的最好的事情,而且它成功了。

add_action('woocommerce_single_product_summary','monolith_cat_scan', 31);

function monolith_cat_scan() {

global $post;

$cats = get_the_terms( $post->ID, 'product_cat' );

if ( ! empty( $cats ) ) {

        foreach ( $cats as $term ) {

        if( $term->parent == 30 ) { 
      echo '<p>Topic : <a href="' . site_url() . '/product-category/' . $term->slug . '">' . $term->name . '</a>';
   }

        }

}

}
add_action('woocommerce_single_product_summary','monolith_cat_scan2', 32);

function monolith_cat_scan2() {

global $post;

$cats = get_the_terms( $post->ID, 'product_cat' );

if ( ! empty( $cats ) ) {

        foreach ( $cats as $term ) {

        if( $term->parent == 31 ) { 
      echo '<p>Author : <a href="' . site_url() . '/product-category/' . $term->slug . '">' . $term->name . '</a>';
   }

        }

}

}

add_action('woocommerce_single_product_summary','monolith_cat_scan3', 33);

function monolith_cat_scan3() {

global $post;

$cats = get_the_terms( $post->ID, 'product_cat' );

if ( ! empty( $cats ) ) {

        foreach ( $cats as $term ) {

   // If parent cat ID = 116 echo subcat name...
        if( $term->parent == 32 ) { 
      echo '<p>Publisher : <a href="' . site_url() . '/product-category/' . $term->slug . '">' . $term->name . '</a>';
   }

        }

}

}
于 2020-02-11T13:49:32.183 回答