搜索全站
数据库 8 分钟阅读

WordPress 目录结构详解:每个文件夹和文件都是干什么的

从根目录的 wp-config.php、.htaccess 到 wp-admin、wp-includes、wp-content 的每个子目录,本文逐层讲清 WordPress 的文件结构:哪些能改、哪些绝不能动、升级时哪些会被覆盖,并给出排查问题时的目录定位对照表。

U
UFO_PF 2025-02-25 · 阅读 8 分钟
Wo 数据库
阅读提示
本文约 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 表

常见踩坑与失败案例

  1. 直接改 wp-includes 里的函数 —— 升级后改动全部消失,站点行为突变。正确做法是用钩子(filter/action)。
  2. 把自研代码放在 wp-content/plugins/ 却被 git clean 清掉 —— 自研代码要进版本库,第三方插件用 Composer 或忽略。
  3. 案例:某站升级后前台空白,排查发现有人为了”优化”删掉了 wp-includes/js/jquery/jquery.min.js,多个插件依赖它。恢复核心文件解决。
  4. uploads 目录权限 777 —— 图省事给 777,结果是任意可写,挂马入口。正确是 755 目录 + 644 文件,属主为 Web 服务用户。
  5. 误删 wp-content/languages/ —— 后台语言切换失效,需要重新下载语言包。
  6. 多个 .htaccess —— 根目录和 wp-admin/ 下可能都有,改的时候要分清。

总结

记住三条就够:核心(wp-admin / wp-includes)永远不动,需求用钩子实现;一切自定义都在 wp-content;配置问题先看 wp-config.php。带着这张”症状 → 目录”对照表排查,你会发现大部分 WordPress 故障都不需要重装,只是找错了文件位置。

U
UFO_PF作者

专注 WordPress 生态的实战作者,内容以「可复制、可验证」为第一原则。

留下你的想法

邮箱地址不会被公开。带 * 的为必填项。