作者选择了自由软件基金会作为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 堆栈安装 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
您将收到以下输出:
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
此时,您可以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
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
. 这有助于安装自定义或高级插件。例如,以下命令将安装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
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) 中打开帖子正文。您可以create
通过wp help post 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
.
对于一次性查询,您可以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
生成文件后,您可以将其移动到其他位置以进行妥善保管:
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 db
通过wp help 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 主题页面。