如何仅在Woocommerce登录页面隐藏账户入口标题?
解决WooCommerce登录页面隐藏entry-title但保留账户端点标题的问题
方法一:精准CSS定位(快速解决)
之前用page-id的CSS无效,是因为登录/未登录状态的「我的账户」页面共享同一个page ID,会误隐藏登录后的端点标题。改用WooCommerce自动添加的body类区分状态:
/* 仅隐藏未登录时的登录页面(my-account/)标题 */ .logged-out.woocommerce-my-account h1.entry-title { display: none; } /* 如果需要同时隐藏注册页面(registration/)的标题,替换xxx为注册页的page-id */ .page-id-xxx.woocommerce-page h1.entry-title { display: none; }
注:注册页的
page-id-xxx可通过浏览器审查元素获取——右键页面→检查,找到<body>标签中的page-id-xx类即可。
方法二:PHP代码实现精准控制(适合开发者)
若担心CSS样式冲突,可在主题的functions.php文件中添加以下代码,通过逻辑判断仅移除登录页面的标题:
add_action( 'wp', 'custom_hide_login_entry_title' ); function custom_hide_login_entry_title() { // 判断当前是账户页面且用户未登录(即登录表单页面) if ( is_account_page() && ! is_user_logged_in() ) { // 移除WooCommerce账户页面的标题钩子 remove_action( 'woocommerce_account_page_header', 'woocommerce_account_page_header' ); // 若主题标题通过the_title输出,添加过滤规则清空标题 add_filter( 'the_title', 'custom_remove_login_page_title', 10, 2 ); } } function custom_remove_login_page_title( $title, $post_id ) { if ( is_account_page() && ! is_user_logged_in() && get_post_type( $post_id ) === 'page' ) { return ''; } return $title; }
这段代码会在用户未登录访问my-account/时移除标题,登录后进入仪表盘、订单等端点时,标题将正常显示。
内容的提问来源于stack exchange,提问作者Z1pas
相关产品推荐
相关产品推荐

