WooCommerce教程:如何将分类H1标签移至描述上方?
解决WooCommerce分类标题H1显示在描述上方的问题
方案一:调整钩子优先级(推荐)
将函数挂载到woocommerce_archive_description钩子,并设置更低的优先级数字(数字越小执行越早),就能让H1标题在分类描述之前输出:
// 移除之前挂载的钩子(若之前添加过woocommerce_before_shop_loop的钩子) remove_action('woocommerce_before_shop_loop', 'show_category_title', 10); // 挂载到分类描述钩子,优先级设为5(早于默认描述的优先级10) add_action('woocommerce_archive_description', 'show_category_title', 5); function show_category_title() { // 仅在产品分类页面生效 if (is_product_category()) { // 获取当前分类对象,避免标签函数的兼容性问题 $term = get_queried_object(); echo '<h1>' . esc_html($term->name) . '</h1>'; } }
方案二:使用专门的前置钩子
如果方案一不生效,可尝试挂载到woocommerce_before_archive_description钩子(该钩子专门在分类描述容器上方触发):
remove_action('woocommerce_before_shop_loop', 'show_category_title', 10); add_action('woocommerce_before_archive_description', 'show_category_title'); function show_category_title() { if (is_product_category()) { $term = get_queried_object(); echo '<h1>' . esc_html($term->name) . '</h1>'; } }
之前代码无效的原因
- 未判断当前是否为产品分类页面,导致非分类归档页面不触发
single_tag_title主要适配标签页面,产品分类场景下用分类对象获取标题兼容性更好- 优先级与默认描述输出设置相同(10),可能被主题或其他插件的逻辑覆盖
内容的提问来源于stack exchange,提问作者Jay
相关产品推荐
相关产品推荐

