WooCommerce使用YITH Brands插件如何将品牌页描述移至商品列表下方
问题原因
- 你当前的代码挂在
init钩子上执行移除动作时机太晚,YITH Brands和Flatsome主题的相关动作已经提前完成挂载,导致移除失效 - 没有完全匹配原有动作的挂载优先级,
remove_action的优先级参数必须和原add_action的参数完全一致才能生效 - Flatsome主题本身对WooCommerce归档页的钩子做了自定义调整,默认的
woocommerce_archive_description钩子的输出逻辑可能被主题重写了
修正后可用代码
if ( class_exists( 'YITH_WCBR' ) && ! function_exists( 'yith_wcbr_move_brand_description' ) ) { function yith_wcbr_move_brand_description() { // 仅在品牌归档页执行逻辑,避免影响其他商品分类页 if ( ! is_tax( 'yith_product_brand' ) ) { return; } // 移除WooCommerce默认的分类描述输出 remove_action( 'woocommerce_archive_description', 'woocommerce_taxonomy_archive_description', 10 ); // 移除YITH Brands原本挂载在顶部的品牌描述,优先级和官方默认的7完全匹配 remove_action( 'woocommerce_archive_description', array( YITH_WCBR(), 'add_archive_brand_template' ), 7 ); // 移除Flatsome主题自定义头部钩子挂载的描述输出,适配Flatsome主题结构 remove_action( 'flatsome_shop_category_header', 'woocommerce_taxonomy_archive_description', 10 ); remove_action( 'flatsome_shop_category_header', array( YITH_WCBR(), 'add_archive_brand_template' ), 7 ); // 将品牌描述挂载到商品列表下方 add_action( 'woocommerce_after_shop_loop', array( YITH_WCBR(), 'add_archive_brand_template' ), 5 ); // 如果你需要同时移动默认的品牌文本描述到下方,可取消注释下面这行 // add_action( 'woocommerce_after_shop_loop', 'woocommerce_taxonomy_archive_description', 6 ); } // 替换为template_redirect钩子,执行时机刚好在主题挂载动作之后、模板渲染之前 add_action( 'template_redirect', 'yith_wcbr_move_brand_description' ); }
操作注意事项
- 代码请放在当前使用的Flatsome子主题的
functions.php文件中,或者放在自定义代码片段插件中,不要直接修改Flatsome父主题的文件,避免主题更新后代码丢失 - 部署后清空站点缓存、浏览器缓存,如果你使用了CDN服务也需要清空CDN缓存后再测试效果
- 如果仍然有残留的顶部描述,可以通过浏览器开发者工具定位对应元素的类名,确认输出对应的钩子后补充对应的移除动作即可
内容的提问来源于stack exchange,提问作者Tayfun Kazancı
相关产品推荐
相关产品推荐

