求助:WooCommerce调整产品摘要至产品标签下方失败
调整WooCommerce产品摘要位置的问题解决方法
问题背景
需要将WooCommerce产品摘要从评分下方移至产品标签(meta)区域下方。原woocommerce_single_product_summary钩子的默认优先级配置如下:
/** * Hook: woocommerce_single_product_summary. * * @hooked woocommerce_template_single_title - 5 * @hooked woocommerce_template_single_rating - 10 * @hooked woocommerce_template_single_price - 10 * @hooked woocommerce_template_single_excerpt - 20 * @hooked woocommerce_template_single_add_to_cart - 30 * @hooked woocommerce_template_single_meta - 40 * @hooked woocommerce_template_single_sharing - 50 * @hooked WC_Structured_Data::generate_product_data() - 60 */
尝试修改子主题functions.php的钩子优先级,但摘要位置未变化:
remove_action('woocommerce_single_product_summary', 'woocommerce_template_single_excerpt', 20 ); add_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_excerpt', 41 );
解决方法
1. 确保代码在WooCommerce初始化后执行
子主题代码可能早于WooCommerce注册钩子,导致remove_action失效。将代码包裹在woocommerce_init动作中:
add_action( 'woocommerce_init', 'move_product_excerpt_after_meta' ); function move_product_excerpt_after_meta() { remove_action('woocommerce_single_product_summary', 'woocommerce_template_single_excerpt', 20 ); add_action( 'woocommerce_single_product_summary', 'woocommerce_template_single_excerpt', 41 ); }
2. 清除网站缓存
若使用缓存插件(如WP Rocket、W3 Total Cache),需清除页面缓存与浏览器缓存,确保新代码生效。
3. 检查主题自定义模板
部分主题会重写content-single-product.php模板,直接控制摘要输出位置:
- 查看子主题目录下是否存在
woocommerce/templates/content-single-product.php - 若存在,找到
woocommerce_template_single_meta()调用,将woocommerce_template_single_excerpt()移至其后方:
// 调整后的模板调用顺序示例 woocommerce_template_single_title(); woocommerce_template_single_rating(); woocommerce_template_single_price(); woocommerce_template_single_add_to_cart(); woocommerce_template_single_meta(); woocommerce_template_single_excerpt(); // 移至产品标签后方 woocommerce_template_single_sharing();
内容的提问来源于stack exchange,提问作者Filippo
相关产品推荐
相关产品推荐

