本文约 2,806 字,预计阅读 8 分钟。文中命令与配置均经过实测,可直接参考执行。
引言:知道文件在哪,问题就解决了一半
新手遇到”后台打不开””样式丢了””插件装不上”,第一反应是重装。其实绝大多数问题都能靠”知道该改哪个文件”解决。
WordPress 的目录结构二十年基本没变,理解一次终身受用。
原理分析:三大目录的分工
站点根目录/
├── wp-admin/ 后台代码(不要改)
├── wp-includes/ 核心函数库(不要改)
├── wp-content/ 你的内容(全在这里)
├── wp-config.php 配置(重要)
├── .htaccess 伪静态(Apache)
└── index.php 前台入口
一句话记忆:wp-admin 和 wp-includes 是 WordPress 自己的,wp-content 是你的。 升级核心会覆盖前两个,绝不会动 wp-content。
保姆级实操:逐层拆解
一、根目录关键文件
| 文件 | 作用 | 能否修改 |
|---|---|---|
wp-config.php |
数据库、密钥、常量 | 能改,最常改 |
.htaccess |
Apache 伪静态与安全规则 | 能改(Nginx 无此文件) |
index.php |
前台入口,加载 wp-blog-header | 极少改(Bedrock 会改) |
wp-login.php |
登录页 | 不改 |
wp-cron.php |
定时任务触发入口 | 不改 |
xmlrpc.php |
远程接口 | 不改(常被关闭) |
.maintenance |
升级时生成,”正在执行例行维护”就是它 | 出问题可删除 |
license.txt / readme.html |
版本信息 | 建议删除(泄露版本号) |
二、wp-admin/
后台所有功能的实现代码:admin.php、post.php、options.php 等。还有三个重要子目录:
wp-admin/css、js、images:后台样式资源;wp-admin/includes/:后台专用函数;wp-admin/network/:多站点网络后台。
这里的任何文件都会在升级时被覆盖,不要改。
三、wp-includes/
WordPress 的核心函数库,wp-db.php(数据库抽象)、functions.php(核心函数)、class-wp-query.php 等都在这里。子目录:
wp-includes/blocks/:区块编辑器区块定义;wp-includes/rest-api/:REST API 实现;wp-includes/widgets/:传统小工具;wp-includes/js/、css/:前台核心资源;wp-includes/certificates/:HTTPS 请求用的 CA 证书(更新失败常常因为它过期)。
四、wp-content/(重点)
wp-content/
├── plugins/ 插件
├── themes/ 主题
├── mu-plugins/ 必用插件(后台不可停用)
├── uploads/ 上传的媒体文件
├── upgrade/ 升级临时目录
├── languages/ 语言包
├── cache/ 缓存(部分插件生成)
├── object-cache.php 对象缓存 drop-in
├── advanced-cache.php 高级缓存 drop-in
└── db.php 数据库 drop-in
uploads/ 默认按 年/月/ 分目录存放,后台”设置 → 媒体 → 按年月组织上传”控制这个行为。
mu-plugins/ 特殊:里面的 PHP 文件会被自动加载,后台插件列表里看不到,也无法停用。适合放必须生效的代码。
五、wp-content/themes/主题目录/
主题目录/
├── style.css 主题声明(含主题名、版本)
├── functions.php 主题函数
├── index.php 默认模板
├── header.php / footer.php / sidebar.php
├── single.php 文章页
├── page.php 页面
├── archive.php 归档页
├── 404.php
├── screenshot.png 后台缩略图
└── template-parts/ 模板片段(部分主题)
六、排查问题的目录定位对照表
| 症状 | 优先看哪里 |
|---|---|
| 连不上数据库 | wp-config.php |
| 内页 404 | .htaccess 或 Nginx 配置 |
| 卡在”正在执行例行维护” | 根目录 .maintenance |
| 后台进不去、白屏 | wp-content/plugins/(改名禁用) |
| 图片不显示 | wp-content/uploads/ 权限与路径 |
| 样式错乱 | wp-content/themes/当前主题/style.css |
| 更新失败 | wp-includes/certificates/ca-bundle.crt |
| 站点地址错误 | wp-config.php 或 wp_options 表 |
常见踩坑与失败案例
- 直接改
wp-includes里的函数 —— 升级后改动全部消失,站点行为突变。正确做法是用钩子(filter/action)。 - 把自研代码放在
wp-content/plugins/却被git clean清掉 —— 自研代码要进版本库,第三方插件用 Composer 或忽略。 - 案例:某站升级后前台空白,排查发现有人为了”优化”删掉了
wp-includes/js/jquery/jquery.min.js,多个插件依赖它。恢复核心文件解决。 uploads目录权限 777 —— 图省事给 777,结果是任意可写,挂马入口。正确是 755 目录 + 644 文件,属主为 Web 服务用户。- 误删
wp-content/languages/—— 后台语言切换失效,需要重新下载语言包。 - 多个
.htaccess—— 根目录和wp-admin/下可能都有,改的时候要分清。
总结
记住三条就够:核心(wp-admin / wp-includes)永远不动,需求用钩子实现;一切自定义都在 wp-content;配置问题先看 wp-config.php。带着这张”症状 → 目录”对照表排查,你会发现大部分 WordPress 故障都不需要重装,只是找错了文件位置。
