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