You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WordPress使用is_page()在特定页面隐藏标题遇问题求助

解决移除About页面H1标题时is_page('about')返回false的问题

你碰到的核心问题是钩子的执行时机不对。init钩子触发得太早了——这时候WordPress还没完成当前页面的查询工作,根本不知道用户访问的是哪个页面,所以is_page('about')自然返回false。

正确的解决方案:用合适的钩子替代init

你可以改用template_redirect钩子,这个钩子是在WordPress确定了要加载的页面模板之后触发的,这时候页面查询已经完成,is_page()这类条件判断函数能正常工作。修改后的代码如下:

function remove_about_page_title() { 
    if (is_page('about')) { 
        remove_action('storefront_page', 'storefront_page_header', 10); 
    } 
} 
add_action('template_redirect', 'remove_about_page_title');

为什么之前换storefront_page钩子能生效?

因为storefront_page是Storefront主题在渲染页面内容阶段触发的钩子,这时候WordPress已经完成了页面查询,能准确识别当前是About页面,所以is_page('about')返回true。不过相比主题专属钩子,template_redirect是WordPress核心钩子,兼容性和稳定性更好,不容易受主题版本更新的影响。

另外要注意:移除动作时,你的remove_action调用的优先级(这里是10)要和原动作storefront_page_header的优先级保持一致,这样才能确保成功移除目标动作。

内容的提问来源于stack exchange,提问作者Jethro Hazelhurst

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 12:20:35