这个系列第一篇我说过一句话:“你脑子里没有一张图,看再多模板标签也是散的。”
六卷写完,这张图该给你了。
你输入一个网址
│
▼
① Nginx 收到请求 ──→ 不是文件,交给 index.php
│
▼
② WordPress 启动 ──→ 读数据库,确定"这是哪个页面"
│
▼
③ 模板层级 ────────→ 决定用哪个文件(single.php? category.php?)
│
▼
④ 加载 functions.php → 注册钩子、菜单、侧栏、资源
│
▼
⑤ 模板开始执行
├── get_header() ──→ header.php ──→ wp_head()
├── 主循环 ──→ 一条条取文章
├── 各种零件 ──→ 标题/正文/分页/面包屑
└── get_footer() ──→ footer.php ──→ wp_footer()
│
▼
⑥ PHP 输出 HTML ────→ 浏览器收到,渲染
六个步骤,对应六卷:
| 卷 | 在这张图的哪一段 |
|---|---|
| 一 · 骨架 | ①②③:请求怎么进来,模板怎么被选中 |
| 二 · 循环 | ⑤ 的核心:文章怎么一条条吐出来 |
| 三 · 零件 | ⑤ 的各个部位:head、导航、侧栏、分页 |
| 四 · 功能 | ④:functions.php 和钩子 |
| 五 · 实战 | 把 ①—⑤ 自己拼一遍 |
| 六 · 进阶 | 让这张图跑得更稳、更安全、更能维护 |
你现在应该能做到一件事:随便打开一个页面,说出它走的哪条路径、用了哪个文件、循环跑了几次。
能做到,这个系列就没白读。
六卷六十二篇,如果只能带走三句话,我要这三句。
这是整套东西里最”不起眼但最要命”的一点。
wp_head() 看起来只是”输出一些 meta”,实际上它是所有插件往页面头部写东西的唯一通道。这条通道断了,插件全部静默失效——不报错、不提示,你在后台设置得再对,前端一行都不会出现。
我那个主题就漏了这一行,漏了不知道多久。表现是:装 SEO 插件没反应、站点验证过不了、缓存插件的一半功能是空的。
为什么难发现?因为页面能正常打开。 一个”网站挂了”的问题,十分钟就修好了;一个”网站看起来正常但一半功能没生效”的问题,可以拖几年。
记住它的判断方法:打开页面源码,搜 api.w.org 或者 generator。搜不到,就是没调 wp_head()。
这两件事撑起了整个主题系统。
新手最容易犯的错,是把它们混在一起:想改文章页的样式,去改 index.php——因为他在首页看到的就是 index.php。结果改了没反应,因为文章页用的是 single.php。
“我改的文件为什么没生效”这个问题,九成的答案是模板层级。
而”页面能开但内容是错的 / 空的 / 重复的”,九成的答案是循环。
两个问题,两条线索,别混。
这条界线很多人模糊,后果是换主题时功能全丢。
判断标准很简单:这段代码删掉之后,网站还能不能正常显示?
按这个标准,”文章列表怎么排”是主题的事,”访客统计”是插件的事,”防垃圾评论”是插件的事(虽然我图省事写在 functions.php 里了——这是个技术债,我知道)。
写在自己主题里当然能跑,但你换主题那天,就得重新写一遍。
六十二篇不可能每篇都记牢。我按重要性分个层:
必须掌握(不掌握就写不下去)
wp_head() / wp_footer()(卷三 19)functions.php 与钩子的基本用法(卷四 31、32)应该会(会了能少踩很多坑)
WP_Query 与 wp_reset_postdata()(卷二 14、18)add_theme_support(卷四 35)知道就行(遇到再查)
pre_get_posts(卷二 16)before_widget 那些参数(卷三 24).po/.mo(卷六 56)为什么这么分? 因为前三类是”每天都要用”,后两类是”一年用一次,用时查文档就行”。人的记忆有限,别平均用力。
看完不等于会。我给三个具体的练习,难度递增:
练习一:给现有主题加一个”阅读量统计”(半天)
要求:文章页显示”本文共被阅读 1234 次”。
这一题会逼你走完:functions.php 写函数 → 钩子挂在文章显示时 → single.php 输出 → 转义 → 处理”自己刷新不算”的问题。五个知识点,一题串完。
练习二:做一个”相关文章”模块(一天)
要求:文章页底部显示 4 篇同分类的文章,且当前这篇不能出现在里面。
这一题考的是 WP_Query 和 wp_reset_postdata()——不 reset 的话,后面的评论、分页会全乱,这是最经典的坑。
练习三:从零写一个只有三个文件的主题(两三天)
要求:style.css + index.php + functions.php,能显示文章列表和单篇,有分页。
不要抄,自己敲。敲的过程中你会不断卡住——每卡一次,就回去查对应那一篇。 这比顺序读十遍有用得多。
这个系列写了六十二篇,但我得诚实说一句:它不能让你变成”会写主题的人”。
能让你变成”会写主题的人”的,只有一件事:你真的去改了一个主题,而且改坏了,而且自己修好了。
我这次修 caogenbj,犯的错比这个系列里讲到的还多:
},多留一个,整站白屏;> 换成空格,导致后面剥标签把整段内容吞掉,一百多篇文章的描述全变成同一句模板;?> 后面 8 个空行当成小事,结果站点地图一直是坏的。每一个都是”看教程看不出来、动手才会撞上”的。
所以我的建议是:别把这个系列当教材读完就算,把它当手册。 改主题的时候放旁边,卡住了搜一下。用着用着,那些概念自己就长在你脑子里了。
六卷的完整目录在这里:WordPress 主题设计教程 · 总目录。
如果你是从中间某一篇点进来的,建议按这个顺序补:
wp_head);四篇,两个小时,你就能把这张图的骨架搭起来。剩下的都是往里填肉。
祝顺利。有问题可以在站内留言,我看到会回。