WordPress主题开发无法加载header.php 自定义页面报错排查
问题原因排查
- 核心错误为函数名拼写错误:WordPress加载主题头部模板的官方函数为
get_header(),你代码中写的get_headers()是PHP原生用于获取HTTP响应头的内置函数,和主题模板加载逻辑完全无关,直接导致无法定位加载header.php文件。 - 基础场景无需传入额外参数:直接调用主题根目录下默认的
header.php文件时,不需要传入任何参数,函数会自动匹配当前主题目录下的对应文件完成加载。 - 自定义头部参数调用规则:如果你创建了命名格式为
header-{自定义名称}.php的专用头部模板(例如用于首页的header-home.php),才需要传入第一个参数指定名称,写法为get_header( 'home' ),函数会自动加载对应命名的头部文件。WordPress 5.5及以上版本支持传入第二个数组类型参数,向头部模板传递自定义变量,普通场景无需使用。
正确代码示例
标准主题首页index.php基础结构写法如下:
<?php // 加载默认头部模板header.php,无自定义头部时无需传参 get_header(); ?> <div> <p>Header</p> <p>main</p> <p>footer</p> <p>final</p> </div> <?php // 加载默认底部模板footer.php,规则和头部函数一致 get_footer(); ?>
补充注意事项
- WordPress模板加载函数均为单数命名:头部
get_header()、底部get_footer()、侧边栏get_sidebar(),不要误写为复数形式,否则会触发PHP原生函数调用,导致模板加载失败。 - 函数调用末尾建议添加分号,符合PHP语法规范,避免低版本PHP环境下出现语法解析错误。
- 若需要向头部模板传递自定义变量,可在第二个参数传入关联数组,例如
get_header( '', array( 'page_key' => 'home' ) ),在header.php文件中可通过$args['page_key']获取传入的值。
内容的提问来源于stack exchange,提问作者Erick Meza
相关产品推荐
相关产品推荐

