如何使用 WP-CLI v2 从命令行管理您的 WordPress 站点

作者选择了自由软件基金会作为Write for DOnations计划的一部分接受捐赠

介绍

WP-CLI是用于WordPress开发和管理任务的命令行工具它提供了几个命令,您可以使用这些命令来管理您的 WordPress 网站,而无需登录仪表板并浏览页面。

使用 WP-CLI 通过传统界面流程管理您的 WordPress 安装有助于加快您的工作流程。对于网站的许多方面,您还可以在 Bash 脚本中使用 WP-CLI 来自动执行繁琐或需要很长时间才能执行的任务。

在本教程中,您将使用 WP-CLI 的许多功能,并了解它如何适合您的工作流程。您将涵盖常见操作,例如管理插件和主题、创建内容、使用数据库和更新 WordPress。WP-CLI 的功能超出了本教程;但是,您将能够转移本教程中的技能,以使用其他 WP-CLI 功能的更常见选项。

先决条件

要学习本教程,您需要一个安全的 WordPress 安装。如果您需要设置 WordPress,您可以针对您选择的服务器发行版遵循以下教程:

注意:如果您没有现有设置,也可以使用 WP-CLI 安装 WordPress,但我们不会在本文中介绍该方面。

第 1 步 – 安装 WP-CLI

在此步骤中,您将在服务器上安装最新版本的 WP-CLI 工具。该工具打包在Phar 文件中Phar 文件是 PHP 应用程序的打包格式,方便应用程序部署和分发。

您可以通过以下方式下载 WP-CLI 的 Phar 文件curl

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

下载文件后,运行以下命令以验证它是否正常工作:

  • php wp-cli.phar --info

您将收到以下输出:

Output
OS: 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

此时,您可以wp-cli.phar直接执行该文件以访问 WP-CLI 工具。要使其在系统上全局可用,请将其移动到您的/usr/local/bin/目录并将其重命名为wp. 这确保您可以通过wp在提示开头输入命令从任何目录访问 WP-CLI

  • sudo mv wp-cli.phar /usr/local/bin/wp

现在,您将能够发出以下命令来检查已安装的 WP-CLI 版本:

  • wp cli version
Output
WP-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查询的预期输出是:

Output
Success: 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 中找到插件的名称。

URL 中的插件名称

  • wp plugin install jetpack wordpress-seo gutenberg

输出指示每个插件的安装进度和完成情况:

Output
Installing 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. 这有助于安装自定义或高级插件。例如,以下命令将安装myplugin.zip托管在example.com. 在运行命令之前,请确保将突出显示的 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
Output
Installing 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 activatewp 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

您将收到类似于以下内容的输出:

Output
Enabling 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

您的输出将确认删除:

Output
Deleted '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搜索词匹配

Output
Success: 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

输出将确认安装:

Output
Installing 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 主题已成功应用。

ColorMag 主题

wp theme list命令的输出指出,twentynineteentwentytwentyone主题都有可用的更新您可以使用以下命令更新它们:

  • wp theme update --all

您将收到类似于以下内容的输出:

Output
Downloading 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 themewp help theme install

现在您可以通过 WP-CLI 管理主题,您将查看该工具提供的用于管理 WordPress 内容的选项。

第 4 步 – 创建帖子和页面

WP-CLI 提供了多种通过命令行管理内容的方法。如果您熟悉nanovim等命令行编辑器,则在终端中写帖子会更舒服

您可以通过以下方式浏览网站上的帖子列表:

  • 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

您的输出将确认帖子的删除:

Output
Success: 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) 中打开帖子正文。您可以create通过wp help post create在终端中键入来找出可以与子命令结合使用的其他标志

vim 编辑器打开后,按i键进入 INSERT 模式,然后将帖子的内容输入到编辑器中。完成帖子的编辑后,按ESC按钮退出 vim 编辑器,然后键入:wq并按ENTER退出 vim 后,您将收到以下输出:

Output
Success: Created post 6.

如果wp post list再次输入该命令,您将找到刚刚创建的帖子。您还可以检查网站的前端。

WP-CLI 帖子

除了在命令行上写帖子外,还可以从文本文件中导入帖子内容。首先,您需要创建文件。例如:

  • 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.

对于一次性查询,您可以wp db query通过将有效的 SQL 查询作为参数传递给命令来使用该命令。例如,要列出 WordPress 数据库中的所有注册用户,您可以运行:

  • wp db query "SELECT user_login,ID FROM wp_users;"

您将看到类似于以下内容的输出:

Output
+------------+----+ | user_login | ID | +------------+----+ | admin | 1 | +------------+----+

有了wp db query你可以运行任何一次性的SQL查询的WordPress数据库。

备份和恢复

WP-CLI 还允许您备份 WordPress 数据库。运行以下命令将在当前目录中放置一个 SQL 转储文件。此文件包含您的整个 WordPress 数据库,包括您的帖子、页面、用户帐户、菜单等:

  • wp db export

生成文件后,您可以将其移动到其他位置以进行妥善保管:

Output
Success: 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'

运行此命令后,您的输出将类似于以下内容:

Output
Success: 10 replacements to be made.

一旦确定要继续,请--dry-run从上一个命令中删除标志:

  • wp search-replace 'example.com' 'example.net'

在此步骤中,您已经查看了可以使用 WP-CLI 执行的几个数据库操作。您还可以完成其他操作,例如优化数据库、查看数据库表、删除数据库或重置数据库。您可以wp db通过wp help db在终端中键入来探索子命令下的其他选项

第 6 步 — 更新 WordPress

您可以使用 WP-CLI 更新核心 WordPress 文件。您可以通过运行以下命令来检查已安装的当前 WordPress 版本:

  • wp core version
Output
5.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
Output
Updating 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 主题页面

觉得文章有用?

点个广告表达一下你的爱意吧 !😁