2017-10-10 119 views
1

我的功能会在每个产品上输出所有使用的Woocommerce产品标签。只获取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>'; 
     } 
} 

回答

1

正确的方法是o使用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文件(活动的主题或任何插件文件)。

经过测试和工作。

+0

很酷,谢谢你!是否有必要“逃脱”任何事情,或者默认已经安全/逃脱了? –

+1

@RawTom我不认为你需要逃脱或消毒任何东西,因为没有提交任何东西......它应该只是很好,因为它是。 – LoicTheAztec

相关问题