簡體   English   中英

僅獲取 Woocommerce 產品標簽的發布條款?

[英]Get only post terms for Woocommerce product tags?

我的函數在每個產品上輸出所有使用過的 Woocommerce 產品標簽。

如何只整理/輸出每個產品從后端選擇的標簽?

這是我的代碼:

add_action( 'woocommerce_before_shop_loop_item', 'woocommerce_product_loop_tags', 5 );
add_action( 'woocommerce_product_thumbnails', 'woocommerce_product_loop_tags',  5 );

function woocommerce_product_loop_tags() {
    global $post, $product;
        if ( is_array (get_terms( 'product_tag' ))) {
           $tags = get_terms( 'product_tag' , 'orderby=id' );
           echo '<span class="badge-cloud">';
           foreach($tags as $tag) {
              echo '<span rel="tag" class="fl-badge '.$tag->slug.'"><p>'.$tag->name.'</p></span>';
           } 
           echo '</span>';
        } 
}

正確的方法是使用wp_get_post_terms() ,您可以在其中設置給定分類法的帖子 ID 以獲取此特定帖子 ID 的術語。 所以你的代碼應該是:

add_action( 'woocommerce_before_shop_loop_item', 'woocommerce_product_loop_tags', 5 );
add_action( 'woocommerce_product_thumbnails', 'woocommerce_product_loop_tags',  5 );
function woocommerce_product_loop_tags() {
    global $post;

    $taxonomy = 'product_tag';
    $args = 'orderby=id';
    $product_tags = wp_get_post_terms( $post->ID, $taxonomy, $args );

    if ( count($product_tags) > 0 ){
        echo '<span class="badge-cloud">';
        foreach( $product_tags as $term )
            echo '<span rel="tag" class="fl-badge '.$term->slug.'"><p>'.$term->name.'</p></span>';
        echo '</span>';
    }
}

代碼位於活動子主題(活動主題或任何插件文件)的 function.php 文件中。

測試和工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM