必须在wp-config.php中require_once前定义define('wp_allow_multisite', true),否则后台无网络配置入口;子域名/子目录选择影响wp_blogs表domain/path字段,错误将导致站点无法访问。
wp-config.php 里必须加 define('wp_allow_multisite', true)
没这行,后台根本看不到「工具 → 配置网络」入口,所有数据库操作都白搭。它不是可选开关,是强制前置条件。
加完后刷新后台,才会出现多站点配置向导。注意:必须在 wp-settings.php 加载前定义,通常放在 wp-config.php 中 require_once 语句之前。
- 如果加在
wp-config.php底部、/* That's all, stop editing! */之后,完全无效 - 如果用
if (is_admin())包裹,也无效——常量必须无条件、尽早定义 - 开启后别急着点「安装」,先确认服务器支持重写(Apache 的
.htaccess或 Nginx 的 rewrite 规则)
网络配置时选「子域名」还是「子目录」直接影响 wp_blogs 的 domain 和 path
选错会导致新站点无法访问,且后续改起来极麻烦——wp_blogs 表里这两字段是路由核心依据,WordPress 不会自动同步更新。
子目录模式下:domain 是主站域名(如 example.com),path 是带斜杠的路径(如 /site1/);子域名模式下:domain 是完整子域名(如 site1.example.com),path 恒为 /。
- 本地开发(localhost)默认不支持子域名,强行选会生成错误的
domain值,比如site1.localhost,浏览器根本解析不了 - 已启用子目录后想切到子域名?不能只改配置,必须批量更新
wp_blogs表的domain/path,还要改wp_site表和所有站点的选项表(wp_{id}_options)里的home/siteurl -
wp_blogs的registered字段是 UNIX 时间戳,不是 MySQL datetime,插入或修改时别用NOW()
手动插入站点时,wp_blogs 的 blog_id 必须和表名后缀一致
WordPress 用 blog_id 构造站点专属数据表,比如 blog_id = 3,就会查 wp_3_posts、wp_3_options。ID 对不上,站点后台直接 500。
中文敏感词/违禁词检测与内容合规性检查工具。支持对小红书(Xiaohongshu)、Douyin(抖音)、WeChat(微信)、Weibo(微博)、Bilibili(哔哩哔哩)、Zhihu(知乎)、Taobao(淘宝)、JD.com(京东)等主流平台的禁用词、限用词及高风险词进行文本扫描与合规性分析。
插入前务必确认:wp_blogs 的 blog_id 是自增主键,但 WordPress 并不严格依赖它自增——你手动 INSERT 时,只要保证该值未被占用、且和实际表名匹配即可。
- 不要用
MAX(blog_id) + 1算下一个 ID,可能有残留未删干净的站点记录(deleted = 1的也算在 MAX 里) - 插入后必须手动创建对应前缀的表,例如
wp_3_posts,否则首次访问会报「Table doesn't exist」 -
wp_blogs的public、archived、spam、deleted字段全为0才算正常启用,任一为1都会导致站点不可见
wp_site 表只有一条记录,改错就全网崩溃
它存的是整个网络的根站点信息,wp_blogs 里的每个站点都指向它。一旦 wp_site 的 domain 或 path 错了,所有子站点的 URL 生成、重定向、cookie 域名都会出问题。
常见翻车点:把测试环境的域名(如 local.test)上线后忘了改回正式域名,结果所有子站点登录态失效、静态资源 404。
-
wp_site的id必须等于wp_blogs中主站点(blog_id = 1)的site_id,否则网络识别失败 - 不能通过 SQL 直接 UPDATE 改
domain,必须同时更新wp_options(主站)和所有wp_{id}_options表里的siteurl和home - 如果用 WP-CLI,
wp rewrite structure或wp rewrite flush会依赖wp_site,配错会导致伪静态规则全乱
多站点不是数据库改几行就完事的事,wp_blogs 和 wp_site 是骨架,但每新增一个站点,背后至少牵扯 11 张表(含用户映射、选项、文章、评论等),漏掉任意一张,那个站点就是半残状态。










