如何在WooCommerce指定页面隐藏my-account菜单仅dashboard页展示
WooCommerce仅在账户仪表盘页面渲染专属菜单方案
你不需要通过CSS隐藏实现,直接通过WooCommerce原生的条件判断+模板/钩子调整就能实现,以下两种可选方案:
- 方案一:修改公共导航模板(全局生效,改一次即可)
- 将WooCommerce默认的
myaccount/navigation.php模板复制到你当前主题的woocommerce/myaccount目录下 - 在该模板的全部代码外层加如下判断逻辑:
调整完成后,除仪表盘外的所有我的账户子页面(订单、下载、地址等)都不会生成导航菜单的HTML代码,完全满足需求。<?php // 仅在我的账户仪表盘页面渲染导航菜单 if ( wc_get_query_var( 'current_page' ) === 'dashboard' ) : ?> <!-- 原有导航模板的全部代码保留在此处 --> <?php endif; ?> - 将WooCommerce默认的
- 方案二:通过钩子禁用非仪表盘页的导航
如果你不想修改模板文件,可以直接在当前主题的functions.php中添加如下代码:
这个方案不需要修改模板文件,直接通过钩子拦截导航的输出,非仪表盘页面不会加载任何菜单相关代码。add_action( 'template_redirect', 'hide_myaccount_nav_non_dashboard' ); function hide_myaccount_nav_non_dashboard() { // 判断为我的账户页且不是仪表盘页时,移除导航输出钩子 if ( is_account_page() && wc_get_query_var( 'current_page' ) !== 'dashboard' ) { remove_action( 'woocommerce_account_navigation', 'woocommerce_account_navigation' ); } }
内容的提问来源于stack exchange,提问作者mathias5
相关产品推荐
相关产品推荐

