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

问题描述 投票:1回答:1

我正在建立一个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>' );
}

但是,它仅显示标记标题,我想看到标记的描述

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

php wordpress woocommerce tags product
1个回答
1
投票

自WooCommerce 3以来,这段代码有点陈旧和过时...... WC_Product方法get_tags()已被wc_get_product_tag_list()函数取代。

由于wc_get_product_tag_list()函数使用WordPress get_the_term_list()函数用于'product_tag'自定义分类(Woocommerce产品标签),我们将使用一些类似的代码。

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

产品标签缩略图/图标:

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

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

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样式规则中进行一些更改...

© www.soinside.com 2019 - 2024. All rights reserved.