如何使用WP-CLIv2从命令行管理您的WordPress站点
作为 Write for DOnations 计划的一部分,作者选择了 自由软件基金会 来接受捐赠。
介绍
WP-CLI 是用于 WordPress 开发和管理任务的命令行工具。 它提供了几个命令,您可以使用这些命令来管理您的 WordPress 网站,而无需登录仪表板并浏览页面。
使用 WP-CLI 通过传统的界面过程管理您的 WordPress 安装有助于加快您的工作流程。 对于您网站的许多方面,您还可以在 Bash 脚本中使用 WP-CLI 来自动执行繁琐或需要很长时间才能执行的任务。
在本教程中,您将使用 WP-CLI 的许多功能并了解它如何适合您的工作流程。 您将涵盖常见操作,例如管理插件和主题、创建内容、使用数据库和更新 WordPress。 WP-CLI 的功能超出了本教程; 但是,您将能够将本教程中的技能转移到使用其他 WP-CLI 功能的更常见选项。
先决条件
要学习本教程,您需要安全的 WordPress 安装。 如果您需要设置 WordPress,您可以按照这些教程为您选择的服务器分发:
- 配置有非 root
sudo
用户的服务器。 为此,您可以遵循我们的 初始服务器设置指南 之一。 - 您的服务器上安装了 Linux、Apache、MySQL、PHP(LAMP 堆栈)。 按照 如何安装 Linux、Apache、MySQL、PHP (LAMP) 堆栈 为您的服务器分发。
- 安全的 WordPress 安装。 您可以按照 如何使用 LAMP Stack 安装 WordPress 进行设置。
注意: 如果您没有现有的设置,也可以 使用 WP-CLI 安装 WordPress,但我们不会在本文中介绍这方面的内容。
第 1 步 — 安装 WP-CLI
在此步骤中,您将在服务器上安装最新版本的 WP-CLI 工具。 该工具被打包在一个Phar文件中,这是一种PHP应用程序的打包格式,便于应用程序的部署和分发。
您可以通过 curl
下载 WP-CLI 的 Phar 文件:
curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
下载文件后,运行以下命令以验证它是否正常工作:
php wp-cli.phar --info
您将收到以下输出:
OutputOS: Linux 5.4.0-51-generic #56-Ubuntu SMP Mon Oct 5 14:28:49 UTC 2020 x86_64 Shell: /bin/bash PHP binary: /usr/bin/php7.4 PHP version: 7.4.3 php.ini used: /etc/php/7.4/cli/php.ini 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: /home/ayo WP-CLI packages dir: WP-CLI global config: WP-CLI project config: WP-CLI version: 2.4.0
接下来,使用以下命令使文件可执行:
chmod +x wp-cli.phar
此时可以直接执行【X35X】【X39X】文件访问WP-CLI工具。 要使其在系统上全局可用,请将其移动到 /usr/local/bin/
目录并将其重命名为 wp
。 这确保您可以通过在提示符开始处输入 wp
命令从任何目录访问 WP-CLI:
sudo mv wp-cli.phar /usr/local/bin/wp
现在,您将能够发出以下命令来检查已安装的 WP-CLI 版本:
wp cli version
OutputWP-CLI 2.4.0
在此步骤中,您在服务器上安装了 WP-CLI。 您可以查看文档中的替代安装方法。 在后续部分中,您将探索可以通过 WP-CLI 界面完成的任务。
第 2 步 — 配置 WordPress 插件
通过管理员用户界面安装和管理 WordPress 插件可能很乏味。 可以将此类任务卸载到 WP-CLI 以使过程更快。 在本节中,您将学习通过命令行在 WordPress 站点上安装、更新和删除插件。
在继续之前,请确保您位于 WordPress 安装目录中:
cd /var/www/wordpress
请记住将突出显示的目录名称更改为包含您的 WordPress 安装的目录。 如果您遵循了先决条件教程,这可能是您的域名。
列出当前插件
您可以使用以下命令列出 WordPress 站点上当前安装的插件:
wp plugin list
它显示插件名称列表以及它们的状态、版本和可用更新的指示。
Output+---------+----------+-----------+---------+ | name | status | update | version | +---------+----------+-----------+---------+ | akismet | inactive | available | 4.1.7 | | hello | inactive | none | 1.7.2 | +---------+----------+-----------+---------+
搜索插件
您可以通过WordPress插件库页面上的搜索栏搜索插件,也可以使用以下命令更快地访问:
wp plugin search seo
运行此命令后,您将收到与搜索词匹配的前 10 个插件的列表(截至 2021 年初)。 seo
查询的预期输出是:
OutputSuccess: Showing 10 of 4278 plugins. +------------------------------------------------------------+---------------------+--------+ | name | slug | rating | +------------------------------------------------------------+---------------------+--------+ | Yoast SEO | wordpress-seo | 98 | | All in One SEO | all-in-one-seo-pack | 92 | | Rank Math – SEO Plugin for WordPress | seo-by-rank-math | 98 | | The SEO Framework | autodescription | 98 | | SEOPress, on-site SEO | wp-seopress | 98 | | Slim SEO – Fast & Automated WordPress SEO Plugin | slim-seo | 92 | | W3 Total Cache | w3-total-cache | 88 | | LiteSpeed Cache | litespeed-cache | 98 | | SEO 2021 by Squirrly (Smart Strategy) | squirrly-seo | 92 | | WP-Optimize – Clean, Compress, Cache. | wp-optimize | 96 | +------------------------------------------------------------+---------------------+--------+
您可以使用 --page
标志转到下一页:
wp plugin search seo --page=2
记下 slug
列中的值。 您将使用此值在命令行上安装或更新插件。
安装插件
您可以使用 wp plugin install
命令安装一个或多个插件。 您找到要安装的插件的名称(在 slug
列中)并将其作为参数传递给 wp plugin install
。 您还可以在插件页面的 URL 中找到插件的名称。
wp plugin install jetpack wordpress-seo gutenberg
输出指示每个插件的安装进度和完成情况:
OutputInstalling Jetpack – WP Security, Backup, Speed, & Growth (9.3.1) Downloading installation package from https://downloads.wordpress.org/plugin/jetpack.9.3.1.zip... Unpacking the package... Installing the plugin... Plugin installed successfully. Installing Yoast SEO (15.6.2) Downloading installation package from https://downloads.wordpress.org/plugin/wordpress-seo.15.6.2.zip... Unpacking the package... Installing the plugin... Plugin installed successfully. Installing Gutenberg (9.8.1) Downloading installation package from https://downloads.wordpress.org/plugin/gutenberg.9.8.1.zip... Unpacking the package... Installing the plugin... Plugin installed successfully. Success: Installed 3 of 3 plugins.
您可以再次运行 wp plugin list
命令以确认您已成功安装插件:
Output+---------------+----------+-----------+---------+ | name | status | update | version | +---------------+----------+-----------+---------+ | akismet | inactive | available | 4.1.7 | | gutenberg | inactive | none | 9.8.1 | | hello | inactive | none | 1.7.2 | | jetpack | inactive | none | 9.3.1 | | wordpress-seo | inactive | none | 15.6.2 | +---------------+----------+-----------+---------+
如果要从 WordPress 插件存储库以外的远程源安装插件,可以将 zip 文件的 URL 作为参数传递给 wp plugin install
。 这对于安装自定义或高级插件很有帮助。 例如,以下命令将安装托管在 example.com
上的 myplugin.zip
文件。 确保在运行命令之前将突出显示的 URL 替换为插件 zip 文件的链接:
wp plugin install https://example.com/wp-content/uploads/myplugin.zip
要在 WordPress 存储库中安装旧版本的插件,请通过 --version
标志指定所需的插件版本:
wp plugin install jetpack --version=8.0
激活和停用插件
您可以通过将 --activate
标志附加到 wp plugin install
来一次性安装和激活插件:
wp plugin install redirection --activate
OutputInstalling Redirection (5.0) Downloading installation package from https://downloads.wordpress.org/plugin/redirection.zip... Using cached file '/home/ayo/.wp-cli/cache/plugin/redirection-5.0.zip'... Unpacking the package... Installing the plugin... Plugin installed successfully. Activating 'redirection'... Warning: Plugin 'redirection' is already active. Success: Installed 1 of 1 plugins.
要激活或停用一个或多个插件,请分别使用 wp plugin activate
和 wp plugin deactivate
命令:
wp plugin activate jetpack gutenberg wp plugin deactivate jetpack gutenberg
或者您可以使用 --all
标志一次激活或停用所有插件。 如果您想调试 WordPress 安装中的问题,这很有用:
wp plugin activate --all wp plugin deactivate --all
更新插件
您可以通过 wp plugin update
命令更新插件。 您可以通过附加 --all
标志选择一次更新一组插件或所有插件。 例如,要更新 akismet
插件,可以运行以下命令:
wp plugin update akismet
您将收到类似于以下内容的输出:
OutputEnabling Maintenance mode... Downloading update from https://downloads.wordpress.org/plugin/akismet.4.1.8.zip... Unpacking the update... Installing the latest version... Removing the old version of the plugin... Plugin updated successfully. Disabling Maintenance mode... +---------+-------------+-------------+---------+ | name | old_version | new_version | status | +---------+-------------+-------------+---------+ | akismet | 4.1.7 | 4.1.8 | Updated | +---------+-------------+-------------+---------+ Success: Updated 1 of 1 plugins.
删除插件
要删除 WordPress 插件,您可以使用 wp plugin delete
命令。 您可以指定一个或多个要删除的插件,如下所示:
wp plugin delete redirection
您的输出将确认删除:
OutputDeleted 'redirection' plugin. Success: Deleted 1 of 1 plugins.
您还可以通过附加 --all
标志而不是一个接一个地指定插件名称来一次性删除所有已安装的插件:
wp plugin delete --all
在此步骤中,您已使用 WP-CLI 管理 WordPress 网站上的插件。 与单击管理仪表板相比,执行操作要快得多。 在下一部分中,您将利用 WP-CLI 来安装和管理 WordPress 主题。
第 3 步 — 配置主题
通过 WP-CLI 管理主题的过程几乎与使用它来管理插件的方式相同。 在本节中,您将通过 wp theme
子命令获取新主题并将其应用到 WordPress 网站。
首先,检查您当前在网站上安装了哪些主题:
wp theme list
您将收到已安装主题的列表:
Output+-----------------+----------+-----------+---------+ | name | status | update | version | +-----------------+----------+-----------+---------+ | twentynineteen | inactive | available | 1.8 | | twentytwenty | inactive | none | 1.6 | | twentytwentyone | active | available | 1.0 | +-----------------+----------+-----------+---------+
当前安装了三个主题,活动的主题是 twentytwentyone
。 如果您想查找具有更多功能的内容,可以尝试如下搜索:
wp theme search color
输出显示有 832 个主题与 color
搜索词匹配:
OutputSuccess: Showing 10 of 832 themes. +---------------------+---------------------+--------+ | name | slug | rating | +---------------------+---------------------+--------+ | Color | color | 0 | | All Colors | all-colors | 100 | | Color Blog | color-blog | 98 | | Color Block | color-block | 0 | | X Blog color | x-blog-color | 0 | | Multicolor Business | multicolor-business | 0 | | ColorNews | colornews | 100 | | Colorist | colorist | 100 | | ColorMag | colormag | 98 | | MultiColors | multicolors | 74 | +---------------------+---------------------+--------+
您可以使用 --page
标志对结果进行翻页。 对于此示例,只需继续安装 ColorMag
主题,因为它的评级非常好。 --activate
标志立即激活主题:
wp theme install colormag --activate
输出将确认安装:
OutputInstalling ColorMag (2.0.4) Downloading installation package from https://downloads.wordpress.org/theme/colormag.2.0.4.zip... Unpacking the package... Installing the theme... Theme installed successfully. Activating 'colormag'... Success: Switched to 'ColorMag' theme. Success: Installed 1 of 1 themes.
如果您访问您的网站,您会发现 ColorMag 主题已成功应用。
wp theme list
命令的输出指出,twentynineteen
和 twentytwentyone
主题都有可用的更新。 您可以使用以下命令更新它们:
wp theme update --all
您将收到类似于以下内容的输出:
OutputDownloading update from https://downloads.wordpress.org/theme/twentynineteen.1.9.zip... Unpacking the update... Installing the latest version... Removing the old version of the theme... Theme updated successfully. Downloading update from https://downloads.wordpress.org/theme/twentytwentyone.1.1.zip... Unpacking the update... Installing the latest version... Removing the old version of the theme... Theme updated successfully. +-----------------+-------------+-------------+---------+ | name | old_version | new_version | status | +-----------------+-------------+-------------+---------+ | twentynineteen | 1.8 | 1.9 | Updated | | twentytwentyone | 1.0 | 1.1 | Updated | +-----------------+-------------+-------------+---------+ Success: Updated 2 of 2 themes.
wp theme
命令提供了许多子命令,可以帮助您完成诸如获取主题的详细信息、检查是否安装了特定主题,甚至删除一个或多个主题等任务。 您可以通过在子命令前添加 help
来探索所有选项,如 wp help theme
或 wp help theme install
。
现在您可以通过 WP-CLI 管理主题,您将查看该工具提供的用于管理 WordPress 内容的选项。
第 4 步 - 创建帖子和页面
WP-CLI 提供了几种通过命令行管理内容的方法。 如果您熟悉像 nano 或 vim 这样的命令行编辑器,在终端中写帖子会更舒服。
您可以通过以下方式浏览网站上的帖子列表:
wp post list
您将收到一个帖子列表:
Output+----+--------------+-------------+---------------------+-------------+ | ID | post_title | post_name | post_date | post_status | +----+--------------+-------------+---------------------+-------------+ | 1 | Hello world! | hello-world | 2021-01-24 12:32:06 | publish | +----+--------------+-------------+---------------------+-------------+
输出显示一篇发布的帖子,标题为 Hello world!
,ID 为 1
。 要删除此帖子,请使用 wp post delete
命令并将帖子 ID 传递给它:
wp post delete 1
您的输出将确认帖子的删除:
OutputSuccess: Trashed post 1.
要创建新帖子,请运行以下命令:
wp post create --post_status=publish --post_title="Sample post created with WP-CLI" --edit
此命令使用 --post_status
标志来设置帖子的状态。 将其设置为 publish
可确保帖子在运行命令后立即发布。 如果要改为创建草稿,请将 --post_status
标志设置为 draft
。 --post_title
标志是您可以指定帖子标题的方式,而 --edit
使帖子正文在默认系统编辑器 (vim) 中打开。 您可以通过在终端中键入 wp help post create
来找出可以与 create
子命令一起使用的其他标志。
打开 vim 编辑器后,按 i
键进入 INSERT 模式,然后将帖子的内容输入编辑器。 编辑完帖子后,按 ESC
按钮退出 vim 编辑器,然后键入 :wq
并按 ENTER
。 退出 vim 后会收到如下输出:
OutputSuccess: Created post 6.
如果再次输入wp post list
命令,就会找到刚刚创建的帖子。 您还可以检查网站的前端。
除了在命令行上编写帖子之外,还可以从文本文件中导入帖子内容。 首先,您需要创建文件。 例如:
touch content.txt
接下来,在命令行编辑器中打开文件以添加或编辑您的内容:
nano content.txt
完成编辑后,按 CTRL-X
然后按 Y
保存并关闭文件。 您可以使用以下命令将该文件的内容作为 WordPress 帖子导入。 您需要做的就是在 create
子命令之后指定文件的路径。 对于此处的示例文件,您将运行:
wp post create ./content.txt --post_title='Sample Post Created with WP-CLI' --post_status=publish
如果要创建页面而不是帖子,请附加 --post_type
标志并将其设置为 page
:
wp post create --post_title="A simple page" --post_status=draft --post_type=page
生成帖子或页面
WP-CLI 还提供了一个选项来干净地生成带有虚拟数据的帖子和页面。 如果您需要自定义数据来快速测试您正在开发的主题或插件,这将非常有用。 以下命令用于生成帖子。 如果您不包含其他标志,默认情况下它将生成 100 个帖子。
wp post generate
您可以使用 --count
标志更改生成的帖子数:
wp post generate --count=20
如果要生成页面而不是帖子,请附加 --post_type
标志并将其设置为 page
:
wp post generate --count=20 --post_type=page
您还可以使用 wp help post generate
查看其他可用选项,以帮助您获得所需的结果。
WordPress 修订
由于多年的编辑和更新内容,旧网站在其主页上进行数十或数百次修订的情况并不少见。 如果您需要恢复到以前版本的内容,修订可能会有所帮助,但如果太多,它们也会损害性能。 您可以通过执行以下命令来清理 WordPress 数据库中的所有后期修订:
wp post delete $(wp post list --post_type='revision' --format=ids) --force
括号中的命令首先被评估,它将生成所有存在的后修订的 ids
,并将它们传递给 delete
子命令。 --force
标志是必要的,因为 'revision'
类型的帖子不支持被发送到垃圾箱。
第 5 步 — 管理您的数据库
WP-CLI 最有用的功能之一是它与 MySQL 数据库交互的能力。 例如,如果您需要交互式会话,您可以使用以下命令输入 MySQL 提示符:
wp db cli
然后,您可以像往常一样使用 MySQL shell,完成任务后,键入 exit
退出 shell。
对于一次性查询,您可以通过将有效的 SQL 查询作为参数传递给命令来使用 wp db query
命令。 例如,要列出 WordPress 数据库中的所有注册用户,您可以运行:
wp db query "SELECT user_login,ID FROM wp_users;"
您将看到类似于以下内容的输出:
Output+------------+----+ | user_login | ID | +------------+----+ | admin | 1 | +------------+----+
使用 wp db query
,您可以对 WordPress 数据库运行任何一次性 SQL 查询。
备份和恢复
WP-CLI 还允许您备份 WordPress 数据库。 运行以下命令将在当前目录中放置一个 SQL 转储文件。 此文件包含您的整个 WordPress 数据库,包括您的帖子、页面、用户帐户、菜单等:
wp db export
生成文件后,您可以将其移动到其他位置以进行保管:
OutputSuccess: Exported to 'wordpress-2021-01-25-25618e7.sql'.
您还可以通过 wp db import
命令将 SQL 转储文件导入数据库。 当您将 WordPress 网站从一个位置迁移到另一个位置时,这很有用。
wp db import file.sql
搜索和替换
您可以使用 WP-CLI 执行的另一个常见操作是查找和替换操作。 您可以先进行试运行以了解它会修改多少个实例。 第一个字符串是搜索组件,而第二个是替换:
wp search-replace --dry-run 'example.com' 'example.net'
运行此程序后,您的输出将类似于以下内容:
OutputSuccess: 10 replacements to be made.
一旦确定要继续,请从上一个命令中删除 --dry-run
标志:
wp search-replace 'example.com' 'example.net'
在此步骤中,您已经查看了可以使用 WP-CLI 执行的几个数据库操作。 您还可以完成其他操作,例如优化数据库、查看数据库表、删除数据库或重置数据库。 您可以通过在终端中键入 wp help db
来探索 wp db
子命令下的其他选项。
第 6 步 — 更新 WordPress
您可以使用 WP-CLI 更新核心 WordPress 文件。 您可以通过运行以下命令检查已安装的 WordPress 的当前版本:
wp core version
Output5.6
您可以通过 wp core check-update
命令检查更新。 如果您的版本不是最新的,这将产生类似于以下的输出:
Output+---------+-------------+-----------------------------------------------------------------------+ | version | update_type | package_url | +---------+-------------+-----------------------------------------------------------------------+ | 5.6.1 | minor | https://downloads.wordpress.org/release/wordpress-5.6.1-partial-0.zip | +---------+-------------+-----------------------------------------------------------------------+
如果有可用更新,您可以通过以下方式安装它:
wp core update
OutputUpdating to version 5.6.1 (en_US)... PHP Warning: Declaration of WP_CLI\Core\CoreUpgrader::download_package($package, $check_signatures = true) should be compatible with WP_Upgrader::download_package($package, $check_signatures = false, $hook_extra = Array) in phar:///usr/local/bin/wp/vendor/wp-cli/core-command/src/WP_CLI/Core/CoreUpgrader.php on line 30 Warning: Declaration of WP_CLI\Core\CoreUpgrader::download_package($package, $check_signatures = true) should be compatible with WP_Upgrader::download_package($package, $check_signatures = false, $hook_extra = Array) in phar:///usr/local/bin/wp/vendor/wp-cli/core-command/src/WP_CLI/Core/CoreUpgrader.php on line 30 Downloading update from https://downloads.wordpress.org/release/wordpress-5.6.1-partial-0.zip... Unpacking the update... Success: WordPress updated successfully.
您还可以通过将 --version
标志设置为版本号来更新到特定版本。 如果要恢复到旧版本,还需要添加 --force
标志,但不建议这样做:
wp core update --version=5.6 wp core update --version=5.0 --force
在这最后一步中,您使用 WP-CLI 更新了您的 WordPress 版本。
结论
对于在命令行上工作的 WordPress 开发人员和管理员来说,WP-CLI 是工具箱的一个很好的补充。 在本教程中,我们介绍了您可以通过命令行执行的几个更常见的任务。
WP-CLI 有更多命令和选项,您可以熟悉这些命令和选项,以便在没有 Web 界面的情况下在命令行上实现更多功能。 使用 wp help <command>
找出您可以使用特定子命令执行的所有操作。 还有许多社区 工具 扩展了 WP-CLI 的更多功能。
有关 WordPress 的更多教程,请查看我们的 WordPress 主题页面 。