WooCommerce Storefront主题移除结账页面面包屑无效如何解决
Storefront主题结账页移除面包屑失效解决方案
失效原因
之前两段代码失效核心是使用了init钩子,该钩子执行时机过早,WordPress此时还未完成页面查询初始化,is_checkout()、is_page()这类条件判断标签无法正确识别当前页面类型,判断逻辑不触发,因此移除动作无效。
可行方案
方案1:PHP代码移除(推荐)
将以下代码添加到子主题functions.php文件末尾,或使用代码片段管理插件添加即可:
add_action( 'template_redirect', 'wc_remove_checkout_storefront_breadcrumbs' ); function wc_remove_checkout_storefront_breadcrumbs() { // 仅结账页生效,如需包含订单完成感谢页,删除&&后面的判断条件即可 if ( is_checkout() && ! is_wc_endpoint_url( 'order-received' ) ) { // 优先级必须和Storefront原生挂载优先级一致,此处为10不可修改 remove_action( 'storefront_before_content', 'woocommerce_breadcrumb', 10 ); } }
添加后清空网站缓存、浏览器缓存再测试即可生效。
方案2:CSS隐藏(兜底方案)
如果PHP方案因主题自定义修改导致不生效,可以在主题自定义-额外CSS中添加以下代码:
/* 仅结账页隐藏面包屑导航 */ .woocommerce-checkout .woocommerce-breadcrumb { display: none !important; }
注意事项
不要直接修改Storefront父主题的核心文件,主题更新后修改会被覆盖。
内容的提问来源于stack exchange,提问作者AAA
相关产品推荐
相关产品推荐

