做「博客服务」而不是「第二个 WordPress」:平台层只做编排,内容能力全部复用核心。这是这套平台最关键的边界。
为什么选多站点
一个网络、无数博客。用户注册即建站,数据同库但逻辑隔离,备份与升级都只有一份代码要管。
配置状态机
每个博客的创建是一条可恢复的流水线:REQUESTED → SITE_CREATED → TEMPLATE_APPLIED → READY。每一步幂等,失败可重试:
// 每一步幂等,可安全重试
foreach ( $steps as $step ) {
$result = $this->{$step}( $ctx );
if ( is_wp_error( $result ) ) {
$ctx->fail( $step, $result );
return; // 下次从断点继续
}
}slug 竞态
缓存的 domain_exists 可能过期,两个并发注册可能同时通过检查。解法是在 MySQL GET_LOCK 锁内直查 wp_blogs 表:
SELECT GET_LOCK( 'bsp_slug_<md5>', 5 );
SELECT blog_id FROM wp_blogs WHERE domain = %s AND path = '/';压测结果
三路并发创建同名 slug,收敛为恰好一个站点、一个失败提示。

