如何修改WooCommerce短代码以仅显示单个指定产品属性?
修改WooCommerce短代码实现仅显示特定产品属性
方法1:直接指定目标属性(快速实现)
把你现有的显示所有属性的短代码函数,修改为只获取并输出Kunstenaar属性,代码示例如下:
function wc_display_kunstenaar_attribute() { global $product; if ( ! $product ) return; // 目标属性名 $target_attr = 'Kunstenaar'; $attr_value = $product->get_attribute( $target_attr ); if ( empty( $attr_value ) ) return; // 自定义输出的HTML结构,可根据主题调整 $output = '<div class="single-product-attribute">'; $output .= '<strong>' . wc_attribute_label( $target_attr ) . ':</strong> ' . $attr_value; $output .= '</div>'; return $output; } add_shortcode( 'show_kunstenaar', 'wc_display_kunstenaar_attribute' );
使用时在单品页面添加短代码 [show_kunstenaar] 即可。
方法2:支持自定义参数(灵活扩展)
如果后续需要显示其他属性,可以修改短代码,允许传入属性名参数:
function wc_display_single_product_attribute( $atts ) { global $product; if ( ! $product ) return; // 设置默认属性为Kunstenaar,可通过参数覆盖 $atts = shortcode_atts( array( 'attr' => 'Kunstenaar' ), $atts ); $attr_name = $atts['attr']; $attr_value = $product->get_attribute( $attr_name ); if ( empty( $attr_value ) ) return; $output = '<div class="single-product-attribute">'; $output .= '<strong>' . wc_attribute_label( $attr_name ) . ':</strong> ' . $attr_value; $output .= '</div>'; return $output; } add_shortcode( 'show_single_attr', 'wc_display_single_product_attribute' );
使用方式:
- 显示Kunstenaar属性:
[show_single_attr] - 显示其他属性(比如假设另一个属性名为"Genre"):
[show_single_attr attr="Genre"]
关键注意点
- 确保属性名
Kunstenaar和产品后台设置的属性完全一致(包括大小写、特殊字符),否则无法获取到属性值。 - 可以修改代码中的HTML类名和结构,匹配你的主题样式,让显示效果更协调。
内容的提问来源于stack exchange,提问作者Systemedic
相关产品推荐
相关产品推荐

