Bedrock通过Composer解决WordPress依赖管理难题,实现版本控制、自动化部署与团队协作标准化。它将核心、插件、主题等依赖统一由composer.json管理,使用环境变量隔离配置,提升安全性与可维护性。项目结构清晰,web/为Web根目录,config/存放多环境配置,结合CI/CD流程实现高效部署,使WordPress具备现代PHP应用特性。

管理WordPress项目的依赖长期以来是个挑战,传统方式难以实现版本控制、自动化部署和团队协作的标准化。Bedrock(由Roots团队开发)结合Composer提供了一现代、高效的工作流,让WordPress站点像真正的现代PHP应用一样被构建和维护。
什么是Bedrock与它解决了什么问题
Bedrock 是 Roots 团队推出的 WordPress 项目骨架,旨在通过 Composer 管理插件、主题、核心以及第三方库,并强化安全性与开发流程。它解决的问题包括:
- WordPress核心手动更新难于追踪
- 插件和主题分散在wp-content目录,无法统一管理版本
- 配置信息(如数据库凭证)硬编码在wp-config.php中,不利于环境隔离
- 缺乏标准的开发、测试、生产环境切换机制
Bedrock 将这些内容纳入composer.json管理,并使用环境变量进行配置,使整个项目更适合Git协作与CI/CD流程。
安装并初始化一个Bedrock项目
开始前确保系统已安装Composer。通过以下命令创建新项目:
composer create-project roots/bedrock my-site这会生成一个符合Bedrock结构的项目目录。关键目录说明如下:
- web/:Web服务器根目录,包含index.php和wp/目录
- config/:存放不同环境的配置文件(如application.php)
- database/:可选,用于存放迁移文件
- resources/:视图、语言文件等资源
- vendor/:Composer依赖库
网站URL指向web/目录以提高安全性,避免暴露配置文件。
使用Composer管理WordPress依赖
在Bedrock中,所有组件都通过composer.json声明:
- WordPress 核心:通过johnpbloch/wordpress或wordpress/wordpress包安装
-
插件:优先使用wpackagist-plugin源,例如:
"wpackagist-plugin/advanced-custom-fields": "^6.0" - Must-use 插件(mu-plugins):可通过composer/installers配置自动安装到mu-plugins目录
- 自定义主题:建议放在web/app/themes/my-theme,不通过Composer管理源码,但可用Composer引入辅助库
添加新的插件只需运行:
composer require wpackagist-plugin/seo-by-rank-math更新全部依赖:
composer update环境配置与部署工作流
Bedrock 使用 dotenv 管理环境变量。根目录下的.env文件定义当前环境配置,例如:
DB_NAME=mysite_devDB_USER=root
DB_PASSWORD=password
WP_ENV=development
WP_HOME=https://mysite.test
WP_SITEURL=${WP_HOME}/wp
生产环境中,服务器上应有独立的.env文件(不在版本控制中),或通过CI工具注入环境变量。
典型部署流程:
- 开发者提交代码(不含.env)
- CI服务拉取代码,运行composer install --no-dev(生产环境)
- 构建前端资源(如果使用Sage主题)
- 同步web/目录到目标服务器
这种流程确保了依赖一致性,也便于回滚和多环境管理。
基本上就这些。Bedrock + Composer 的组合为WordPress带来了现代化PHP工程实践,提升了项目的可维护性与安全性。虽然初期需要适应新结构,但长期来看对团队协作和持续交付非常有价值。










