WordPress 模板层级:一个页面请求,WP 到底按什么顺序找文件
摘要
改 WP 主题最常见的困惑是「我明明改了某个文件,页面没变」。八成是改错了文件——WP 按模板层级逐级向下找,找到第一个存在的就用,后面的一概不看。 文章详情页的查找顺序 single-post-{slug}.php single-post
改 WP 主题最常见的困惑是「我明明改了某个文件,页面没变」。八成是改错了文件——WP 按模板层级逐级向下找,找到第一个存在的就用,后面的一概不看。
文章详情页的查找顺序
single-post-{slug}.php
single-post-{id}.php
single-post.php
single.php
singular.php
index.php
从上往下,命中即停。index.php 是兜底,任何主题都必须有它,否则 WP 会拒绝启用。
页面、归档、分类的顺序差别
- 页面:
page-{slug}.php→page-{id}.php→page.php→singular.php→index.php - 分类:
category-{slug}.php→category-{id}.php→category.php→archive.php→index.php - 搜索:
search.php→index.php - 404:
404.php→index.php
怎么快速确认当前用的是哪个文件
临时在 functions.php 里加:
add_action('wp_footer', function () {
global $template;
echo '<!-- ' . basename($template) . ' -->';
});
刷新页面看源码最后一行,就是答案。查完记得删掉。
一个高频误区
文件名里的 slug 用的是文章的 URL 别名,不是标题。中文标题的别名如果在后台没设,WP 会生成一串编码,按这个去建文件基本对不上。想针对性改模板,用 ID 更稳。
2026年10月20日 14:30
前后30天 · 点日期看归档
9月20日
9月21日
9月22日
9月23日
9月24日
9月25日
9月26日
9月27日
9月28日
9月29日
9月30日
10月1日
10月2日
10月3日
10月4日
10月5日
10月6日
10月7日
10月8日
10月9日
10月10日
10月11日
10月12日
10月13日
10月14日
10月15日
10月16日
10月17日
10月18日
10月19日
10月20日
10月21日
10月22日
10月23日
10月24日
10月25日
10月26日
10月27日
10月28日
10月29日
10月30日
10月31日
11月1日
11月2日
11月3日
11月4日
11月5日
11月6日
11月7日
11月8日
11月9日
11月10日
11月11日
11月12日
11月13日
11月14日
11月15日
11月16日
11月17日
11月18日
11月19日