安装 WP-CLI 完整指南

install wordpress cli 1

WordPress 命令行界面(WP-CLI)是一个强大的 WordPress 开发工具。我们用它来帮助我们编写测试、管理站点数据库的更改,甚至在 WP Migrate 中也有 WP-CLI 支持

我们非常喜欢它,以至于我们认为每个 WordPress 开发者都应该知道如何安装和使用它。本文涵盖了 WP-CLI 的安装,然后是设置它以使其与 tab 补全和 WP-CLI 配置文件高效配合工作。

什么是 WP-CLI?

WP-CLI 是 WordPress 的命令行界面。它允许你完成 WordPress 网站管理面板上的许多相同任务,但可以通过计算机或 Web 服务器上的命令行终端来完成。这使得它在开发期间和站点部署后都非常有用。你可以使用 WP-CLI 安装 WordPress、配置多站点安装、更新插件和主题、更新 WordPress 本身,等等。

一旦你熟悉了 WP-CLI,你会发现这通常比通过 Web 浏览器做同样的事情更快。诸如 WP-CLI 之类的命令行工具也非常适合重复性任务,例如批量添加用户或定期检查更新。这是因为 WP-CLI 很容易与其他命令行工具和实用程序(如 Bash 脚本和 cron 任务)结合使用。

WP-CLI 对各种 WordPress 相关任务都很有用。例如……

安装并激活插件:

$ wp plugin install --activate https://advancedcustomfields.com/latest/

添加用户:

$ wp user create erik [email protected] --role=subscriber

更新 WordPress 核心和数据库:

$ wp core update && wp core update-db

导出数据库快照:

$ wp db export /mnt/backups/$(date +%Y%m%d).sql

添加单个用户、运行一次性备份或使用命令行执行更新检查可能与管理页面相比没有太大优势。但是,如果你需要添加 500 个用户,或者希望每天凌晨 3 点完成更新和备份,那么拥有命令行工具就非常方便了。

如何安装 WP-CLI

这些说明适用于 Mac 和 Linux 用户。点击这里跳转到在 Windows 上安装的说明。

官方方法

安装 WP-CLI 的推荐方法已记录在 WP-CLI 站点上。在 Mac 或 Linux 计算机上安装 WP-CLI 需要 PHP 5.6 或更高版本,并且必须安装 cURL 命令行工具。打开终端并运行以下命令。

第一步是下载 Phar 构建版本:

$ curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar

接下来,您需要验证下载的文件:

$ php wp-cli.phar --info

最后,将其设置为可执行并移动到您的 PATH 中:

$ chmod +x wp-cli.phar
$ sudo mv wp-cli.phar /usr/local/bin/wp

使用包管理器安装 WP-CLI

WP-CLI 开发人员并未积极参与维护众多包管理器的软件包。使用包管理器安装 WP-CLI 的选项因您使用的包管理器以及是否有志愿者介入并为其创建软件包而异。

使用 APT 安装 WP-CLI

Tiago Hillebrandt 维护着一个用于在 Debian/Ubuntu 及其所有变体上安装 WP-CLI 的 PPA。您可以像这样使用他的 PPA:

$ sudo add-apt-repository ppa:tiagohillebrandt/wp-cli
$ sudo apt-get update
$ sudo apt-get install wp-cli

使用 Homebrew 安装 WP-CLI

Homebrew 有一个 WP-CLI 公式,所以只需运行以下命令即可:

$ brew install wp-cli

使用 Composer 安装 WP-CLI

您也可以使用 Composer 安装 WP-CLI。虽然 Composer 最常见的用途是维护 PHP 项目内部的依赖项,但它也可以用于在您的机器上安装工具。如果您绝对需要特定的 WP-CLI 版本,可以只为当前项目安装 WP-CLI。一个项目很少需要最新版本以外的其他版本,所以我的建议是全局安装。让 WP-CLI 随时随地轻松访问是很好的,而且我的项目中也会少一个开发依赖项。以下是全局安装的方法:

$ composer global require wp-cli/wp-cli

这种安装方法要求您将 ~/.composer/vendor/bin 添加到您的 PATH 变量)中。这取决于您使用的是 MacOSLinux 还是 Windows。以下是一些有用的链接,用于使用 BashZsh

一旦像这样全局安装了 WP-CLI,您就可以从计算机上的任何文件夹访问它。

通过 Docker 安装 WP-CLI

Docker 社区维护着 WordPress 和 WP-CLI 镜像。您可以通过在 docker compose 创建的 yml 文件中将 CLI 变体指定为 WordPress 镜像来在 Docker 项目中使用 WP-CLI 镜像。

image: wordpress:cli

验证 WP-CLI 是否工作

无论您使用哪种安装方法,验证安装是否成功并确保 WP-CLI 无论您当前在哪个目录都可以访问都是一个好主意。要验证一切是否正常工作,您可以传递 --info 参数:

$ wp --info

如果安装正确,您应该会看到类似以下内容:

操作系统:    Darwin 20.6.0 Darwin Kernel Version 20.6.0: 2021年11月10日 22:23:07 PST; root:xnu-7195.141.14~1/RELEASE_X86_64 x86_64
Shell:  /bin/zsh
PHP 二进制文件:     /usr/local/Cellar/php@7.4/7.4.27/bin/php
PHP 版本:    7.4.27
php.ini 使用:   /usr/local/etc/php/7.4/php.ini
MySQL 二进制文件:   /usr/local/bin/mysql
MySQL 版本:  mysql  Ver 8.0.28 for macos11.6 on x86_64 (Homebrew)
SQL 模式:
WP-CLI 根目录:        phar://wp-cli.phar/vendor/wp-cli/wp-cli
WP-CLI 供应商目录:      phar://wp-cli.phar/vendor
WP_CLI phar 路径:       /usr/local/bin
WP-CLI 包目录:
WP-CLI 全局配置:
WP-CLI 项目配置:
WP-CLI 版本:  2.6.0

如何在 Windows 上安装 WP-CLI

在原生 Windows 上安装 WP-CLI 与在 Mac 或 Linux 机器上安装略有不同。在开始之前,使用微软在几年前推出的 Windows Subsystem for Linux,您应该能够按照上述 MacOS 和 Linux 的说明进行安装。如果您在原生 Windows 上运行,以下步骤适合您。

请注意,WP-CLI 首先是为 *nix 系统设计的。某些功能,如通过 SSH 访问远程 WordPress 网站,可能需要您费不少周折。其他功能可能根本无法工作。但在 Windows 机器上安装基本的 WP-CLI 是可行的。

请注意,您的 Windows 用户账户必须具有管理员权限,这些步骤才能生效。如果您没有管理员权限,则需要让有权限的人给您管理员权限或帮助您完成这些步骤。

Windows 系统要求

要在 Windows 上开始安装 WordPress 命令行,唯一真正的要求是您已安装用于 Windows 的命令行 PHP 并将其添加到您的 PATH,以便您可以从任何工作目录的命令行运行 PHP。安装 WP-CLI 最简单的方法是使用 cURL。自 2018 年以来,大多数 Windows 安装已经包含了 cURL。

今天是我们庆祝 Windows 10 随系统捆绑发布 curl 正好 4 周年。

— daniel:// stenberg:// (@bagder) 2022年3月1日

如果您机器上没有 cURL,我强烈建议您在继续之前使用这些推荐方法之一安装它,或者从 cURL 主页下载。

下载并安装

首先您需要从 GitHub 将最新的 wp-cli.phar 下载到本地文件夹。如果您已安装 cURL,可以使用三个命令完成:

C:> mkdir C:wp-cli
C:> cd C:wp-cli
C:> curl -O https://raw.github.com/wp-cli/builds/gh-pages/phar/wp-cli.phar

如果您没有 cURL 也无法安装,也可以在 Windows 文件资源管理器中手动创建 C:wp-cli 文件夹,使用上面的链接下载文件,然后将其移动到该文件夹。

下载文件后,建议通过输入以下命令确认它可以正常工作:

C:> php C:wp-cliwp-cli.phar --info

您应该会看到几行内容总结您的本地 WP-CLI 环境。

每次运行 WP-CLI 命令时都要输入 phar 文件的完整路径会很快让人厌烦。因此,为了让生活更轻松,我们需要再执行两个步骤。首先,我们将 C:wp-cli 文件夹永久添加到 PATH 环境变量。我更喜欢使用 setx 命令。您可以选择只将其添加到您的环境,或使用 /m 开关将其添加到所有用户。

对于所有未来的用户会话:

setx PATH "%PATH%;c:wp-cli"

对于当前终端会话:

set PATH "%PATH%;c:wp-cli"

或者对于系统上的所有用户,在所有未来的会话中:

setx PATH "%PATH%;c:wp-cli" /m

如果这是你的本地开发机器,只需要将路径添加到你自己的环境变量即可。如果这是一台服务器,你可能会使用 WP-CLI 安排夜间任务,那么最好将其添加到所有用户的环境中。使用 setx/m 开关需要你以管理员权限打开 CMD 终端。最简单的方法是在开始菜单中搜索 cmd.exe,右键点击它,然后选择以管理员身份运行

runas administrator 348x385 1

最后,我们在 WP-CLI 文件夹中创建一个名为 wp.bat 的 Windows 批处理文件,内容如下:

@ECHO OFF
php "c:wp-cliwp-cli.phar" %*

这个 .bat 文件将使你能够使用更短的 wp 来调用 WP-CLI,而不必每次都输入完整的 phar 文件名。它能节省你大量的输入时间,而且这也是在 Mac 和 Linux 上调用 WP-CLI 的方式。

验证 WP-CLI 在 Windows 上是否正常工作

有了以上所有设置,我们应该能够从任何文件夹运行 WP-CLI:

C:> wp --info

如果安装正确,你应该看到类似以下内容:

OS:    Windows NT 10.0 build 19043 (Windows 10) AMD64
Shell:  C:WINDOWSsystem32cmd.exe
PHP binary:     C:phpphp.exe
PHP version:    7.4.27
php.ini used:
MySQL binary:
MySQL version:
SQL modes:
WP-CLI root dir:        phar://wp-cli.phar/vendor/wp-cli/wp-cli
WP-CLI vendor dir:      phar://wp-cli.phar/vendor
WP_CLI phar path:       C:wp-cli
WP-CLI packages dir:
WP-CLI global config:
WP-CLI project config:
WP-CLI version: 2.6.0

安装 WP-CLI 后

一旦你启动 WP-CLI 并验证它可以正常工作,就是时候进行一些初始设置了。WP-CLI 的核心概念之一是 commands,它们可以有 subcommands。这些命令和子命令都包含许多可选参数。你有时可能需要输入相当长的命令。就在前几天,我需要在 WordPress 选项中插入一个数组元素,命令如下:

$ wp --path=www/testing option patch insert tantan_wordpress_s3 post_meta_version 7

一旦你熟悉了 WP-CLI,你无疑会记住很多这样的命令。但如果这看起来比你日常输入的内容要多,让我告诉你一些可以做的事情,让它不那么令人生畏,而且更有可能一次就输入正确。

设置 Tab 自动补全

我们要做的第一件事是启用 tab 自动补全,这是 shell 中的一个机制,当你按下 TAB 键时,它会自动建议你接下来应该输入什么。在我的环境中,我只需要输入上面命令的开头部分,就能看到有哪些子命令可用:

$ wp option [TAB]
add      delete   get      list     patch    pluck    update

设置 tab 自动补全是非常容易的事情,没有理由不这样做,但最好先知道你在使用什么命令行 shell。如果你不太确定,让我快速向你展示如何通过检查 $SHELL 环境变量来做到这一点:

# 在较旧的 MacOS 和大多数 Linux 设备上,我们应该看到 /bin/bash
$ echo $SHELL
/bin/bash

# 在较新的 MacOS 设备上,我们应该看到 /bin/zsh
$ echo $SHELL
/bin/zsh

# 检查 Oh My Zsh
$ omz
Usage: omz <command> [options]

Available commands:

  help                Print this help message
  changelog           Print the changelog
  plugin <command>    Manage plugins
  pr     <command>    Manage Oh My Zsh Pull Requests
  reload              Reload the current zsh session
  theme  <command>    Manage themes
  update              Update Oh My Zsh
  version             Show the version

如果你使用 Oh My Zsh,这是最简单的方法。只需输入以下命令:

$ omz plugin enable wp-cli
omz::plugin::enable: plugins enabled: wp-cli.

如果你使用的是纯 Bash 或 Zsh,需要多几个步骤来下载脚本并将其添加到你的环境。首先,切换到主文件夹并下载 WP-CLI 2.6.0 版本的脚本:

$ cd ~/
$ curl -O https://raw.githubusercontent.com/wp-cli/wp-cli/v2.6.0/utils/wp-completion.bash

接下来,将其添加到你的配置文件中并重新加载。Bash 用户可以使用以下命令:

$ echo "source ~/wp-completion.bash" >> ~/.bash_profile
$ source ~/.bash_profile

而 Zsh 用户应该使用:

$ echo "source ~/wp-completion.bash" >> ~/.zshenv
$ source ~/.zshenv

在 Linux 系统上,你不需要像在 ~/.bash_profile 中那样源文件 wp-completion.bash,而是要在 ~/.bashrc 中进行。确保 wp-completion.bash 文件在你的主目录中,然后从主目录运行以下命令:

cat wp-completion.bash >> .bashrc
source .bashrc

虽然标签补全在 Windows 上在一定程度上也存在,但据我所知,无法像在 Mac 或 Linux 上那样将其与 WP-CLI 等第三方工具集成。如果你知道在 Windows 上添加 WP-CLI 标签补全的方法,请在下方评论中告诉我。

创建 WP-CLI 配置文件

一旦有了可用的 WP-CLI 安装,我总是立即做的下一件事就是在我的 $HOME 文件夹中添加一个配置文件。配置文件是一个相当高级的主题,有很多有趣的功能,可能值得单独写一篇文章。创建一个基本的配置文件是减少重复输入的好方法。

如果没有配置文件,WP-CLI 会假设你的工作目录与实际 WordPress 站点的 wp-config.php 文件所在目录相同。很多时候你并不在该目录中。例如,每次打开终端时,你通常会在你的 $HOME 文件夹中。幸运的是,你可以向 WP-CLI 提供 --path 参数,让它查找正确的文件夹:

$ wp --path=/Users/eriktorsner/src/path/to/wordpress plugin list

正如你所想象的,每次都输入那个初始路径变量很快就会变得很繁琐。为了减少输入量,你可以添加一个配置文件,WP-CLI 会使用它来获取 path 和其他重要参数。

要创建此文件,请打开你喜欢的文本编辑器,在主目录中创建一个名为 wp-cli.yml 的文件。添加以下行:

path: /Users/eriktorsner/src/path/to/wordpress

你需要调整该路径,使其与你放置或计划放置本地 WordPress 安装的位置相匹配。有了这个文件,WP-CLI 就会自动知道在哪里查找 WordPress 安装,这样你就不必每次都输入了。

每次你运行 WP-CLI 命令时,它都会查找要使用的配置文件。有几个可以放置配置文件的位置,并且有特定的优先级决定选择哪个配置文件,从高到低:

  1. 当前工作目录中或其上目录中名为 wp-cli.local.yml 的文件
  2. 当前工作目录中或其上目录中名为 wp-cli.yml 的文件
  3. $HOME 文件夹中名为 wp-cli.yml 的文件

请注意,”或上目录”意味着,假设你在 WordPress 安装的根目录中保留一个配置文件,如果你已经深入到像 wp-content/uploads/year/month 这样的子目录中,WP-CLI 仍然能够找到它。值得一提的是,如果你想把配置文件放在主文件夹以外的其他位置,你始终可以使用 WP_CLI_CONFIG_PATH 环境变量来指定位置。

您通过输入命令提供的任何参数都将覆盖从配置文件中读取的值,这样在需要时就可以轻松覆盖配置文件中的值。

本节只是初步介绍了WP-CLI配置文件的有用程度。在后续文章中,我计划深入探讨,向您展示如何使用它们来管理我的本地WordPress开发环境。

更新WP-CLI

WP-CLI具有自我更新的能力。如果您使用推荐的方法安装了WP-CLI,可以使用update子命令来更新它:

$ sudo wp cli update

在本地开发环境中,您可能想尝试WP-CLI的最新和最强大的功能,可以使用每夜构建版本(但请避免在生产服务器上使用):

$ sudo wp cli update --nightly

如果您使用包管理器安装了WP-CLI,您应该始终使用包管理器的机制来更新它。直接更新虽然几乎肯定可以工作,但不推荐这样做。您这是在剥夺包管理器了解当前安装版本的机会。这绝不是什么好事。一旦您选择了安装方法,我建议您在更新时也坚持使用这种方法。

分享你的喜爱

留下评论

您的邮箱地址不会被公开。 必填项已用 * 标注