需求:开发两个带链接的WooCommerce当前产品标签/分类短代码
WooCommerce 产品标签/分类带链接短代码实现
短代码1:显示当前产品带链接的标签
功能说明:
- 展示当前WooCommerce产品的标签
- 每个标签为可点击的分类归档链接
- 标签之间以逗号分隔
实现代码
add_shortcode( 'wc_product_tag_links', 'get_product_tag_links' ); function get_product_tag_links( $atts ) { // 短代码参数设置 $atts = shortcode_atts( array( 'product_id' => get_the_id(), // 默认使用当前产品ID 'taxonomy' => 'product_tag' // 默认产品标签分类法 ), $atts, 'wc_product_tag_links' ); // 获取产品关联的标签术语对象 $terms = wp_get_post_terms( $atts['product_id'], $atts['taxonomy'] ); $term_links = array(); if ( ! empty( $terms ) && ! is_wp_error( $terms ) ) { foreach ( $terms as $term ) { // 生成标签的归档链接 $term_link = get_term_link( $term ); if ( ! is_wp_error( $term_link ) ) { $term_links[] = '<a href="' . esc_url( $term_link ) . '">' . esc_html( $term->name ) . '</a>'; } } } // 将链接数组用逗号分隔后返回 return implode( ', ', $term_links ); }
短代码2:显示当前产品带链接的分类
功能说明:
- 展示当前WooCommerce产品的分类
- 每个分类为可点击的分类归档链接
- 分类之间以逗号分隔
实现代码
add_shortcode( 'wc_product_category_links', 'get_product_category_links' ); function get_product_category_links( $atts ) { // 短代码参数设置 $atts = shortcode_atts( array( 'product_id' => get_the_id(), // 默认使用当前产品ID 'taxonomy' => 'product_cat' // 默认产品分类分类法 ), $atts, 'wc_product_category_links' ); // 获取产品关联的分类术语对象 $terms = wp_get_post_terms( $atts['product_id'], $atts['taxonomy'] ); $term_links = array(); if ( ! empty( $terms ) && ! is_wp_error( $terms ) ) { foreach ( $terms as $term ) { // 生成分类的归档链接 $term_link = get_term_link( $term ); if ( ! is_wp_error( $term_link ) ) { $term_links[] = '<a href="' . esc_url( $term_link ) . '">' . esc_html( $term->name ) . '</a>'; } } } // 将链接数组用逗号分隔后返回 return implode( ', ', $term_links ); }
关键修改说明
你之前的代码仅获取了标签名称(fields => 'names'),无法生成跳转链接。上述代码做了以下核心调整:
- 移除
fields参数,获取完整的术语对象,包含术语ID、slug等关键信息 - 使用
get_term_link()生成每个术语的归档页面链接 - 用
<a>标签包裹术语名称,生成可点击的链接 - 添加
esc_url()和esc_html()确保输出安全,避免XSS风险
使用方法
在产品页面编辑器或模板中直接调用短代码即可:
- 显示标签:
[wc_product_tag_links] - 显示分类:
[wc_product_category_links]
若需指定特定产品ID,可传入参数:[wc_product_tag_links product_id="123"]
内容的提问来源于stack exchange,提问作者AstroAtom
相关产品推荐
相关产品推荐

