显示多个 Woocommerce 自定义分类法的术语

Display terms for multiple Woocommerce custom taxonomies

我需要一个来自三个自定义 Woocommerce 分类法的内爆术语列表,包括要在产品循环中显示的分类法名称。我还需要能够为每个分类法显示多个术语。但是,我只能让它与一种分类法一起使用。而且我不知道如何显示相应的分类法名称。

我的自定义分类法是 'artists'、'illustrators' 和 'authors'。这是我想要完成的:

罗伯特·道格拉斯(作者)、比尔·约翰斯顿(插画家)、凯尔·麦克贝斯(艺术家)

function list_author_terms() {
    global $post;
    $person = get_the_terms(get_the_ID(), 'authors', 'artists', 'illustrators');
    if (    $person
     && !is_wp_error(  $person )
    ) {
    @usort( $person, function ( $a, $b )
    {
    return strcasecmp( 
            $a->slug,
            $b->slug
        );
    });
    // Display your terms as normal
    $term_list = [];
    foreach ( $person as $term ) 
       $term_list[] = '<a href="' . get_term_link( $term ) . '"class="author rsc-tp">' . esc_html( $term->name ) . '<span class="attribute"> (Author)</span> </a>';
       $term_names[] = $term->name;
     echo implode( ', ', $term_list);
        echo '<br>';
    }
}

添加以下代码片段来完成您的任务 -

add_action( 'woocommerce_after_shop_loop_item', 'list_author_terms', 6 );
function list_author_terms(){
    $taxonomies = array( 'authors', 'artists', 'illustrators' );
    $pro_list_terms = array();
    foreach ( $taxonomies as $taxonomy ) {
        $term_obj_list = get_the_terms( get_the_ID(), $taxonomy );
        $tax_obj = get_taxonomy( $taxonomy );
        if( $term_obj_list && ! is_wp_error( $term_obj_list ) ){
            foreach ( $term_obj_list as $term ) {
                $link = get_term_link( $term, $taxonomy );
                $pro_list_terms[] = '<a href="' . esc_url( $link ) . '" class="author rsc-tp">' . $term->name . ' (' .$tax_obj->labels->singular_name . ')</a>';
            }
        }
    }
    echo join( ', ', $pro_list_terms );
}