使用简码显示为产品设置的 WooCommerce 产品标签名称
Show WooCommerce product tag name set for a product with a shortcode
正如标题所说,我正在寻找可用于显示特定产品标签的简码。 我所有的产品都只有一个产品标签集。
例如,如果 ID 为 1250 的产品有标签“Horse”,我需要输入指定产品 ID 的简码并显示您各自的标签的方法。在示例中,短代码应在屏幕上显示单词“Horse”
尝试修改以下代码来实现:
$terms = wp_get_post_terms( get_the_id(), 'product_tag' );
if( count($terms) > 0 ){
foreach($terms as $term){
$term_id = $term->term_id; // Product tag Id
$term_name = $term->name; // Product tag Name
$term_slug = $term->slug; // Product tag slug
$term_link = get_term_link( $term, 'product_tag' );
$output[] = '.$term_name.';
}
$output = implode( ', ', $output );
echo $output;
}
但是我没有足够的知识来实现它
感谢任何帮助。
如果每个产品只有一个产品标签集,则以下短代码函数将输出为当前产品设置的产品标签术语名称(或一串逗号分隔的术语名称,当为多个术语设置时)一个产品)。它也适用于定义的产品 ID 作为短代码中的参数 (参见用法示例).
函数代码:
add_shortcode( 'wc_product_tag', 'get_tag_term_name_for_product_id' );
function get_tag_term_name_for_product_id( $atts ) {
// Shortcode attribute (or argument)
extract( shortcode_atts( array(
'taxonomy' => 'product_tag', // The WooCommerce "product tag" taxonomy (as default)
'product_id' => get_the_id(), // The current product Id (as default)
), $atts, 'wc_product_tag' ) );
$term_names = (array) wp_get_post_terms( $product_id, $taxonomy, array('fields' => 'names') );
if( ! empty($term_names) ){
// return a term name or multiple term names (in a coma separated string)
return implode(', ', $term_names);
}
}
代码进入您的活动子主题(或活动主题)的 functions.php 文件。已测试并有效。
用法示例:
- 对于当前产品:
[wc_product_tag]
或者在 php 中:echo do_shortcode('[wc_product_tag]');
- 对于定义的产品 ID:
[wc_product_tag product_id="37"]
或者在 php 中:echo do_shortcode('[wc_product_tag product_id="37"]');
This also works for any product custom taxonomy, as WooCommerce product category…
要显示 WooCommerce 产品类别术语名称 为您需要替换的产品设置:
'taxonomy' => 'product_tag', // The WooCommerce "Product Tag" taxonomy (as default)
通过以下行:
'taxonomy' => 'product_cat', // The WooCommerce "Product Category" taxonomy (as default)
正如标题所说,我正在寻找可用于显示特定产品标签的简码。 我所有的产品都只有一个产品标签集。
例如,如果 ID 为 1250 的产品有标签“Horse”,我需要输入指定产品 ID 的简码并显示您各自的标签的方法。在示例中,短代码应在屏幕上显示单词“Horse”
尝试修改以下代码来实现:
$terms = wp_get_post_terms( get_the_id(), 'product_tag' );
if( count($terms) > 0 ){
foreach($terms as $term){
$term_id = $term->term_id; // Product tag Id
$term_name = $term->name; // Product tag Name
$term_slug = $term->slug; // Product tag slug
$term_link = get_term_link( $term, 'product_tag' );
$output[] = '.$term_name.';
}
$output = implode( ', ', $output );
echo $output;
}
但是我没有足够的知识来实现它
感谢任何帮助。
如果每个产品只有一个产品标签集,则以下短代码函数将输出为当前产品设置的产品标签术语名称(或一串逗号分隔的术语名称,当为多个术语设置时)一个产品)。它也适用于定义的产品 ID 作为短代码中的参数 (参见用法示例).
函数代码:
add_shortcode( 'wc_product_tag', 'get_tag_term_name_for_product_id' );
function get_tag_term_name_for_product_id( $atts ) {
// Shortcode attribute (or argument)
extract( shortcode_atts( array(
'taxonomy' => 'product_tag', // The WooCommerce "product tag" taxonomy (as default)
'product_id' => get_the_id(), // The current product Id (as default)
), $atts, 'wc_product_tag' ) );
$term_names = (array) wp_get_post_terms( $product_id, $taxonomy, array('fields' => 'names') );
if( ! empty($term_names) ){
// return a term name or multiple term names (in a coma separated string)
return implode(', ', $term_names);
}
}
代码进入您的活动子主题(或活动主题)的 functions.php 文件。已测试并有效。
用法示例:
- 对于当前产品:
[wc_product_tag]
或者在 php 中:echo do_shortcode('[wc_product_tag]');
- 对于定义的产品 ID:
[wc_product_tag product_id="37"]
或者在 php 中:echo do_shortcode('[wc_product_tag product_id="37"]');
This also works for any product custom taxonomy, as WooCommerce product category…
要显示 WooCommerce 产品类别术语名称 为您需要替换的产品设置:
'taxonomy' => 'product_tag', // The WooCommerce "Product Tag" taxonomy (as default)
通过以下行:
'taxonomy' => 'product_cat', // The WooCommerce "Product Category" taxonomy (as default)