在woocommerce shop page中显示产品标签描述

时间:2018-01-04 10:24:02

标签: php wordpress woocommerce tags product

我正在建立一个woocommerce网站,我正在努力在商店页面上获取标签说明。我发现了很多关于标签本身的信息,我发现这段代码here完美地显示了标签。

add_action( 'woocommerce_after_shop_loop_item', woocommerce_product_loop_tags', 5 );

function woocommerce_product_loop_tags() {
global $post, $product;

$tag_count = sizeof( get_the_terms( $post->ID, 'product_tag' ) );

echo $product->get_tags( ', ', '<span class="tagged_as">' . _n( 'Tag:', 'Tags:', $tag_count, 'woocommerce' ) . ' ', '.</span>' );
}

但是,它只显示标签标题,我希望看到标签的描述

更具体一点:最终目标是根据标签显示图片/图标。这就是我在标签描述中添加图片的原因。 但是,如果有人知道更好/更容易的解决方案,根据标签显示图片,我很高兴知道: - )

1 个答案:

答案 0 :(得分:1)

自WooCommerce 3以来,这段代码有点过时了,过时了 WC_Product方法get_tags()已被wc_get_product_tag_list()函数替换。

作为wc_get_product_tag_list()函数,使用WordPress get_the_term_list()函数来生成&#39; product_tag&#39;自定义分类(Woocommerce产品标签),我们将使用一些类似的代码。

在下面的函数中,您将能够获得产品标签说明,但要为每个产品标签输出缩略图(或图标),最好的方法应该是:

  

产品标签缩略图/图标:

     

在活动子主题(或活动主题)中添加包含所有产品标签图标的文件夹。
  此文件夹名称将为icon_tags(例如)。
  每个图标文件名都是产品标签slug。

在活动主题文件夹中的icon_tags子文件夹(具有正确的文件名)中生成并上传图标后,请在下面的代码中设置正确的图像路径:< / p>

add_action( 'woocommerce_after_shop_loop_item', 'woocommerce_product_loop_product_tags', 5 );
function woocommerce_product_loop_product_tags() {
    global $product;

    $taxonomy = 'product_tag'; // Product tag custom taxonomy
    $terms = get_the_terms( $product->get_id(), $taxonomy );

    if ( is_wp_error( $terms ) || empty( $terms ) || count( $terms ) == 0 )
        return;

    ## -- BELOW define your product tag images path -- ##

    // $path = get_template_directory_uri(); // For a Normal theme
    $path = get_stylesheet_directory_uri(); // For a child theme
    $img_path = $path . '/icon_tags/';

    $links = array();

    // Loop through each product tag
    foreach ( $terms as $term ) {
        $term_id = $term->term_id; // term ID
        $term_slug = $term->slug; // term slug
        $term_name = $term->name; // term name
        $term_description = $term->description; // (if needed)
        $term_link = get_term_link( $term, $taxonomy );

        // Image for product tag
        $image_src = $img_path . $term->slug . '.jpg';
        $image = '<img src="' . esc_url( $image_src ) . '" alt="" >';

        $product_tags[] = '<a href="' . esc_url( $term_link ) . '" rel="tag">' . $image . '<span class="caption">' . $term_name . '</span></a>';
    }

    $sep = ', ';
    $before = '<p class="tagged_as"><strong>' . _n( 'Tag:', 'Tags:', count( $terms ), 'woocommerce' ) . ' </strong>';
    $after = '</p>';

    echo $before . join( $sep, $product_tags ) . $after;
}

代码进入活动子主题(或活动主题)的function.php文件。

此代码已经过测试并且有效。

  

您当然必须在html输出和相关的CSS样式规则中进行一些更改...