WordPress/wordpress-develop
GitHub: WordPress/wordpress-develop
WordPress 核心软件的官方 Git 开发镜像仓库,提供完整的本地开发环境和测试工具链,供开发者参与核心代码贡献。
Stars: 3376 | Forks: 3556
# WordPress
欢迎使用 WordPress 开发代码库!请查阅[贡献者手册](https://make.wordpress.org/core/handbook/),了解如何提交 Bug 报告、贡献补丁、测试更改、编写文档或以任何可能的方式参与其中。
* [新手入门](#getting-started)
* [凭据](#credentials)
## 新手入门
### 本地开发
WordPress 是一个基于 PHP、MySQL 和 JavaScript 的项目,并使用 Node 来管理其 JavaScript 依赖。它提供了一个可用的本地开发环境,以便您能快速启动并运行。
您需要对如何在计算机上使用命令行有基本的了解。这将使您能够设置本地开发环境,在必要时启动和停止它,并运行测试。
您的计算机上需要安装 Node 和 npm。Node 是用于开发者工具的 JavaScript 运行时,而 npm 是 Node 附带的包管理器。如果您为您的操作系统安装了包管理器,设置过程可能会非常简单:
* macOS:`brew install node`
* Windows:`choco install nodejs`
* Ubuntu:`apt install nodejs npm`
如果您没有使用包管理器,请访问 [Node.js 下载页面](https://nodejs.org/en/download/)获取安装程序和二进制文件。
**注意:** WordPress 目前仅官方支持 Node.js `20.x` 和 npm `10.x`。
您还需要在计算机上安装并运行容器环境,例如 [Docker Desktop](https://www.docker.com/products/docker-desktop)。容器环境是为本地开发环境提供支持的虚拟化软件,可以像安装任何其他常规应用程序一样进行安装。
**注意:** WordPress 目前仅官方支持 Docker,但也支持其他几种通常兼容的容器环境,例如 [Colima](https://github.com/abiosoft/colima)、[OrbStack](https://orbstack.dev/)、[Podman Desktop](https://podman-desktop.io/) 和 [Rancher Desktop](https://rancherdesktop.io/)。
### 开发环境命令
在使用这些命令之前,请确保您的容器环境正在运行。
#### 首次启动开发环境
您可以通过以下步骤开始使用本地开发环境:
1. 前往 https://github.com/WordPress/wordpress-develop 并将该代码库 Fork 到您自己的 GitHub 帐户。
2. 然后使用 `git clone https://github.com//wordpress-develop.git` 将 Fork 的代码库克隆到您的计算机。
3. 使用 `cd wordpress-develop` 导航到克隆的代码库目录中。
4. 通过 `git remote add upstream https://github.com/WordPress/wordpress-develop.git` 将源代码库添加为 `upstream` 远程仓库。
5. 例如,随后您可以通过 `git pull --ff upstream trunk` 让您的分支保持最新。
或者,如果您安装了 [GitHub CLI](https://cli.github.com/),只需运行 `gh repo fork WordPress/wordpress-develop --clone`([文档](https://cli.github.com/manual/gh_repo_fork))。此命令将执行以下操作:
1. 将代码库 Fork 到您的帐户(使用 `--org` 标志可克隆到组织中)。
2. 将代码库克隆到您的计算机。
3. 将 `WordPress/wordpress-develop` 添加为 `upstream`,并将其设置为默认的 `remote` 代码库。
在此之后,请记得运行 `cd wordpress-develop`。
将代码库 Fork 并克隆到您的计算机后,在终端中运行以下命令:
```
npm install
npm run build:dev
npm run env:start
npm run env:install
```
您的 WordPress 站点将可通过 http://localhost:8889 访问。您可以在位于项目目录根目录下的 `.env` 文件中查看或更改配置。
#### 监视更改
如果您正在修改 WordPress 核心文件,您应该启动文件监视器,以便根据需要构建或复制文件:
```
npm run dev
```
要停止监视器,请按 `ctrl+c`。
#### 运行 [WP-CLI](https://make.wordpress.org/cli/handbook/) 命令
```
npm run env:cli --
```
WP-CLI 提供了[许多有用的命令](https://developer.wordpress.org/cli/commands/),您可以使用它们来管理您的 WordPress 站点。当文档提到运行 `wp` 时,请改为运行 `npm run env:cli --`。例如:
```
npm run env:cli -- help
```
#### 运行测试
这些命令分别运行 PHP 和端到端测试套件:
```
npm run test:php
npm run test:e2e
```
您可以通过添加 `--` 以及[命令行选项](https://docs.phpunit.de/en/10.4/textui.html#command-line-options)来向 PHP 测试传递额外参数:
```
npm run test:php -- --filter
npm run test:php -- --group
```
#### 对工作流文件进行 Lint 检查
GitHub Actions 工作流在特权软件供应链环境中运行,因此所有工作流文件都必须遵守高度的质量和安全标准。
`.github/workflows` 目录中的所有 YAML 工作流文件在修改时都会使用 [Actionlint](https://github.com/rhysd/actionlint) 和 [Zizmor](https://github.com/zizmorcore/zizmor) 进行静态扫描。建议您使用包管理器在本地安装这两个工具,以便在提交工作流文件更改之前先进行运行检查。
- [Actionlint 安装说明](https://github.com/rhysd/actionlint/blob/main/docs/install.md)
- [Zizmor 安装说明](https://docs.zizmor.sh/installation/)
运行 Actionlint:
```
actionlint
```
对所有工作流文件运行 Zizmor(注意末尾的句点):
```
zizmor .
```
**注意:** 当 Zizmor 检测到问题时,不会导致工作流运行失败。相反,生成的报告会提交到 GitHub Code Scanning,并通过状态检查展示出来。某些本地报告的问题可能会根据代码库配置的 Code Scanning 设置被忽略。
#### 生成代码覆盖率报告
PHP 代码覆盖率报告会[每天生成](https://github.com/WordPress/wordpress-develop/actions/workflows/test-coverage.yml)并[提交到 Codecov.io](https://app.codecov.io/gh/WordPress/wordpress-develop)。
在本地容器环境[安装并启动](#to-start-the-development-environment-for-the-first-time)之后,可以使用以下命令生成代码覆盖率报告。
```
npm run test:coverage
```
该命令将生成 HTML、PHP 和文本格式的三份覆盖率报告,并将它们保存在 `coverage` 文件夹中。
**注意:** 生成代码覆盖率报告需要 xDebug,这会显著减慢 PHPUnit 的运行速度。传递基于选择的选项(例如 `--group` 或 `--filter`)可以减少所需的总时间,但会导致报告不完整。
#### 重启开发环境
如果您更改了 `docker-compose.yml` 或 `.env` 文件中的配置,可能需要重启环境。使用以下命令重启环境:
```
npm run env:restart
```
#### 停止开发环境
当您不使用环境时,可以将其停止以节省计算机的电源和资源:
```
npm run env:stop
```
#### 再次启动开发环境
再次启动环境只需一条命令:
```
npm run env:start
```
#### 重置开发环境
开发环境可以被重置。这将销毁数据库并尝试移除已拉取的容器镜像。
```
npm run env:reset
```
### Apple Silicon 机器与旧版 MySQL/MariaDB 版本
旧版 MySQL 和 MariaDB 容器镜像不支持 Apple Silicon 处理器(M1、M2 等)。以下版本受此影响:
- MySQL 5.7 及更早版本
- MariaDB 5.5
在 Apple Silicon 机器上使用这些版本时,您必须创建一个包含以下内容的 `docker-compose.override.yml` 文件:
```
services:
mysql:
platform: linux/amd64
```
此外,必须禁用容器环境(如果适用)中的“Use Rosetta for x86/AMD64 emulation on Apple Silicon”设置,此解决方案才能生效。
## 凭据
以下是默认的环境凭据:
* 数据库名称:`wordpress_develop`
* 用户名:`root`
* 密码:`password`
要登录站点,请导航至 http://localhost:8889/wp-admin。
* 用户名:`admin`
* 密码:`password`
**注意:** 如果使用 Codespaces,请从终端的“Ports”选项卡中打开端口转发的 URL,并在其后附加 `/wp-admin` 以登录站点。
生成新密码(推荐):
1. 转到控制台
2. 点击左侧的“用户”菜单
3. 点击 admin 用户下方的“编辑”链接
4. 向下滚动并点击“生成密码”。您可以直接使用此密码(推荐)或对其进行更改,然后点击“更新用户”。如果您使用生成的密码,请务必将其保存在某处(密码管理器等)。
标签:ffuf, MITM代理, OpenVAS, PHP, Syscall, Web开发, WordPress, 内容管理系统, 数据可视化, 暗色界面, 请求拦截