WordPress 的首页模板继承遵循一套特定的模板层级(Template Hierarchy)规则,系统会按照优先级自动选择最匹配的模板文件来渲染首页。理解这套规则是进行自定义开发的基础。
一、 首页模板的继承规则(优先级从高到低)
WordPress 在加载首页时,会按以下顺序查找并加载第一个存在的模板文件:
front-page.php(最高优先级)- 如果存在此文件,WordPress 会无视其他所有规则,直接使用它渲染首页。
- 通常用于创建完全自定义的、非博客形式的首页(如企业官网、落地页)。
home.php- 如果
front-page.php不存在,WordPress 会查找此文件。 - 这是传统的“博客文章列表页”模板。如果你的首页显示的是最新文章列表,通常使用此模板。
- 如果
index.php(最低优先级/兜底)- 如果以上两个文件都不存在,WordPress 会使用主题根目录下的
index.php。 - 这是 WordPress 的万能后备模板,理论上可以渲染任何页面。
- 如果以上两个文件都不存在,WordPress 会使用主题根目录下的
💡 核心区别:
front-page.php:定义“网站首页”的样子。home.php:定义“文章列表页(博客页)”的样子。- 在后台 设置 > 阅读 中,你可以指定一个静态页面作为首页(
front-page.php),另一个页面作为文章页(home.php)。
二、 自定义首页模板的方法
方法 1:创建 front-page.php(推荐用于非博客首页)
如果你希望首页是一个静态的营销页面或企业介绍页,这是最佳选择。
- 在主题根目录创建
front-page.php。 - 在文件开头添加模板注释(可选,但有助于识别):
<?php /** * Template Name: 自定义首页 * Description: 用于渲染网站首页 */ - 编写你的自定义 HTML 和 PHP 代码。你可以直接写静态 HTML,也可以使用 Advanced Custom Fields (ACF) 等插件创建可后台编辑的模块。
方法 2:修改 home.php(推荐用于博客首页)
如果你的首页就是博客文章流,修改这个文件。
- 通常主题自带
home.php,如果没有,复制index.php并重命名。 - 修改循环(The Loop)部分,定制文章列表的显示样式(如卡片布局、无侧边栏等)。
方法 3:使用页面模板(Page Template)
如果你希望首页的内容可以在 WordPress 后台像编辑普通页面一样自由修改:
- 创建一个页面模板,例如
template-homepage.php。 - 在文件头部声明:
<?php /* Template Name: 首页模板 */ - 在后台 页面 > 新建,选择使用“首页模板”。
- 在 设置 > 阅读 中,设置“首页显示”为“一个静态页面”,并选择刚才创建的页面。
方法 4:通过 functions.php挂载自定义查询
如果你只是想在首页显示特定的文章(如只显示某个分类的文章),无需创建新模板文件,直接在 functions.php中修改主查询即可:
// 修改首页主查询
function custom_homepage_query( $query ) {
if ( $query->is_home() && $query->is_main_query() ) {
// 示例:首页只显示分类ID为 3 的文章
$query->set( 'cat', '3' );
// 或者修改每页显示数量
$query->set( 'posts_per_page', 6 );
}
}
add_action( 'pre_get_posts', 'custom_homepage_query' );
三、 最佳实践建议
- 明确需求:先想好首页是“文章列表”还是“静态页面”,再选择对应的方法。
- 子主题开发:永远不要直接修改父主题的文件。请创建子主题(Child Theme),在子主题目录中进行上述所有操作,这样主题更新时你的修改不会丢失。
- 缓存优化:如果首页内容复杂且更新不频繁,建议使用缓存插件(如 W3 Total Cache, WP Rocket)对首页进行静态化缓存,极大提升加载速度。


湘公网安备43020002000238