我正在建立一个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>' );
}
但是,它仅显示标记标题,我想看到标记的描述
更具体一点:最终目标是根据标签显示图片/图标。这就是我在标签描述中添加图片的原因。但如果有人知道更好/更容易的解决方案,根据标签显示图片,我会很高兴知道:-)
自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样式规则中进行一些更改...