WooCommerce技术问题:在店铺/归档页面商品标题下显示商品分类
解决WooCommerce商品标题与价格间添加分类无效果的问题
确认模板文件路径是否正确
必须将archive-product.php放在当前激活主题的woocommerce子文件夹下,正确路径为:wp-content/themes/[你的主题名称]/woocommerce/archive-product.php。若直接放在主题根目录,WordPress会优先调用WooCommerce默认模板,你的修改不会生效。检查代码插入位置
打开主题内的archive-product.php,找到商品标题与价格的输出区块,在do_action( 'woocommerce_shop_loop_item_title' );之后、价格输出代码之前插入分类显示代码。示例代码如下:<?php // 获取并输出当前商品所属分类 $product_cats = get_the_terms( get_the_ID(), 'product_cat' ); if ( $product_cats && !is_wp_error( $product_cats ) ) { $cat_names = array(); foreach ( $product_cats as $cat ) { $cat_names[] = $cat->name; } echo '<div class="product-category">' . implode( ', ', $cat_names ) . '</div>'; } ?>推荐用钩子替代模板修改(更安全)
直接修改模板文件易在主题更新时丢失改动,建议通过WooCommerce钩子实现。在当前主题的functions.php中添加以下代码:add_action( 'woocommerce_after_shop_loop_item_title', 'show_product_category_between_title_price', 15 ); function show_product_category_between_title_price() { global $product; $product_cats = get_the_terms( $product->get_id(), 'product_cat' ); if ( $product_cats && !is_wp_error( $product_cats ) ) { $cat_names = wp_list_pluck( $product_cats, 'name' ); echo '<span class="product-category">' . esc_html( implode( ', ', $cat_names ) ) . '</span>'; } }这里设置钩子优先级为15(标题钩子优先级为10,价格钩子为20),确保分类刚好显示在两者之间。
清除缓存
修改后若仍无效果,清除WordPress缓存插件(如WP Rocket、W3 Total Cache)及浏览器缓存,避免旧页面缓存导致修改不显示。
内容的提问来源于stack exchange,提问作者Giannis Savvopoulos
相关产品推荐
相关产品推荐

