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

作者选择了自由软件基金会作为 写给捐款计划的一部分接受捐款。

介绍

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

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

在本教程中,您将使用WP-CLI的许多功能,并发现它如何适应您的工作流程。您将涵盖管理插件和主题,创建内容,与数据库工作,并更新WordPress等常见操作。

前提条件

要遵循本教程,您将需要一个安全的WordPress安装. 如果您需要设置WordPress,您可以遵循以下教程为您选择的服务器部署:

您可以遵循我们的 初始服务器设置指南为此。

<$>[注] 注: 如果您没有现有设置,也可以安装WordPress与WP-CLI(https://make.wordpress.org/cli/),但我们不会在本文中涵盖这一方面。

步骤 1 – 安装 WP-CLI

在此步驟中,您將在您的伺服器上安裝最新版本的 WP-CLI 工具. 該工具包裝在 Phar 檔案,這是為 PHP 應用程式的包裝格式,使應用程式的部署和分發方便。

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

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

一旦下载了文件,请运行以下命令来验证它是否工作:

1php wp-cli.phar --info

您将获得以下输出:

 1[secondary_label Output]
 2OS:     Linux 5.4.0-51-generic #56-Ubuntu SMP Mon Oct 5 14:28:49 UTC 2020 x86_64
 3Shell:  /bin/bash
 4PHP binary:     /usr/bin/php7.4
 5PHP version:    7.4.3
 6php.ini used:   /etc/php/7.4/cli/php.ini
 7WP-CLI root dir:        phar://wp-cli.phar/vendor/wp-cli/wp-cli
 8WP-CLI vendor dir:      phar://wp-cli.phar/vendor
 9WP_CLI phar path:       /home/ayo
10WP-CLI packages dir:
11WP-CLI global config:
12WP-CLI project config:
13WP-CLI version: 2.4.0

接下来,用以下命令使文件可执行:

1chmod +x wp-cli.phar

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

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

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

1wp cli version
1[secondary_label Output]
2WP-CLI 2.4.0

在此步骤中,您已在您的服务器上安装了 WP-CLI. 您可以在文档中查看 替代安装方法

第2步:配置WordPress插件

通过管理员用户界面安装和管理WordPress插件可能是无聊的。可以将此类任务卸载到WP-CLI,以使过程更快。在本节中,您将学习如何通过命令行在WordPress网站上安装,更新和删除插件。

在您继续之前,请确保您位于您的WordPress安装目录中:

1cd /var/www/wordpress

请记住将突出的目录名称更改到包含您的WordPress安装的目录. 如果您遵循前提教程,这可能是您的域名。

现有插件列表

您可以用以下命令列出当前在WordPress网站上安装的插件:

1wp plugin list

它显示了插件名称的列表,以及它们的状态,版本和可用的更新的指示。

1[secondary_label Output]
2+---------+----------+-----------+---------+
3| name    | status   | update    | version |
4+---------+----------+-----------+---------+
5| akismet | inactive | available | 4.1.7   |
6| hello   | inactive | none      | 1.7.2   |
7+---------+----------+-----------+---------+

寻找插件

您可以通过 WordPress 插件存储页面的搜索栏搜索插件,或者您可以使用以下命令更快访问:

1wp plugin search seo

一旦运行此命令,您将收到符合搜索术语的前10个插件列表(截至2021年初)。

 1[secondary_label Output]
 2Success: Showing 10 of 4278 plugins.
 3+------------------------------------------------------------+---------------------+--------+
 4| name                                                       | slug                | rating |
 5+------------------------------------------------------------+---------------------+--------+
 6| Yoast SEO                                                  | wordpress-seo       | 98     |
 7| All in One SEO                                             | all-in-one-seo-pack | 92     |
 8| Rank Math &#8211; SEO Plugin for WordPress                 | seo-by-rank-math    | 98     |
 9| The SEO Framework                                          | autodescription     | 98     |
10| SEOPress, on-site SEO                                      | wp-seopress         | 98     |
11| Slim SEO &#8211; Fast &amp; Automated WordPress SEO Plugin | slim-seo            | 92     |
12| W3 Total Cache                                             | w3-total-cache      | 88     |
13| LiteSpeed Cache                                            | litespeed-cache     | 98     |
14| SEO 2021 by Squirrly (Smart Strategy)                      | squirrly-seo        | 92     |
15| WP-Optimize &#8211; Clean, Compress, Cache.                | wp-optimize         | 96     |
16+------------------------------------------------------------+---------------------+--------+

您可以通过使用 - 页面旗帜进入下一页:

1wp plugin search seo --page=2

请注意slug列中的值,您将使用此值来安装或更新命令行上的插件。

安装插件

您可以使用wp plugin install命令安装一个或多个插件,您可以找到您要安装的插件名称(在slug列中),并将其作为参数传递到wp plugin install

Plugin name in URL

1wp plugin install jetpack wordpress-seo gutenberg

输出显示了每个插件的安装进度和完成:

 1[secondary_label Output]
 2Installing Jetpack  WP Security, Backup, Speed, & Growth (9.3.1)
 3Downloading installation package from https://downloads.wordpress.org/plugin/jetpack.9.3.1.zip...
 4Unpacking the package...
 5Installing the plugin...
 6Plugin installed successfully.
 7Installing Yoast SEO (15.6.2)
 8Downloading installation package from https://downloads.wordpress.org/plugin/wordpress-seo.15.6.2.zip...
 9Unpacking the package...
10Installing the plugin...
11Plugin installed successfully.
12Installing Gutenberg (9.8.1)
13Downloading installation package from https://downloads.wordpress.org/plugin/gutenberg.9.8.1.zip...
14Unpacking the package...
15Installing the plugin...
16Plugin installed successfully.
17Success: Installed 3 of 3 plugins.

您可以再次运行wp插件列表命令,以确认您已成功安装插件:

 1[secondary_label Output]
 2+---------------+----------+-----------+---------+
 3| name          | status   | update    | version |
 4+---------------+----------+-----------+---------+
 5| akismet       | inactive | available | 4.1.7   |
 6| gutenberg     | inactive | none      | 9.8.1   |
 7| hello         | inactive | none      | 1.7.2   |
 8| jetpack       | inactive | none      | 9.3.1   |
 9| wordpress-seo | inactive | none      | 15.6.2  |
10+---------------+----------+-----------+---------+

如果您想从 WordPress 插件存储库以外的远程源安装一个插件,您可以将 zip 文件的 URL 传输到 wp plugin install. 这对于安装自定义或高级插件很有帮助。例如,下面的命令会安装在 example.com 上托管的 myplugin.zip` 文件。在运行命令之前,请确保将突出的 URL 代替到插件 zip 文件的链接:

1wp plugin install https://example.com/wp-content/uploads/myplugin.zip

要在WordPress存储库中安装一个较旧的插件版本,请通过--version标志指定所需的插件版本:

1wp plugin install jetpack --version=8.0

激活和禁用插件

您可以通过将--activate旗帜附加到wp plugin install来安装和激活插件:

1wp plugin install redirection --activate
 1[secondary_label Output]
 2Installing Redirection (5.0)
 3Downloading installation package from https://downloads.wordpress.org/plugin/redirection.zip...
 4Using cached file '/home/ayo/.wp-cli/cache/plugin/redirection-5.0.zip'...
 5Unpacking the package...
 6Installing the plugin...
 7Plugin installed successfully.
 8Activating 'redirection'...
 9Warning: Plugin 'redirection' is already active.
10Success: Installed 1 of 1 plugins.

要激活或禁用一个或多个插件,请分别使用wp插件激活wp插件禁用命令:

1wp plugin activate jetpack gutenberg
2wp plugin deactivate jetpack gutenberg

或者你可以使用--所有旗帜,同时激活或禁用所有插件,如果你想在WordPress安装中纠正问题,这是非常有用的:

1wp plugin activate --all
2wp plugin deactivate --all

更新插件

您可以通过wp plugin update命令来更新插件. 您可以选择通过附加--all标志同时更新一组插件或全部插件。

1wp plugin update akismet

您将获得类似的输出:

 1[secondary_label Output]
 2Enabling Maintenance mode...
 3Downloading update from https://downloads.wordpress.org/plugin/akismet.4.1.8.zip...
 4Unpacking the update...
 5Installing the latest version...
 6Removing the old version of the plugin...
 7Plugin updated successfully.
 8Disabling Maintenance mode...
 9+---------+-------------+-------------+---------+
10| name    | old_version | new_version | status  |
11+---------+-------------+-------------+---------+
12| akismet | 4.1.7       | 4.1.8       | Updated |
13+---------+-------------+-------------+---------+
14Success: Updated 1 of 1 plugins.

删除插件

要删除WordPress插件,您可以使用wp插件删除命令,您可以指定一个或多个插件如下删除:

1wp plugin delete redirection

您的输出将确认删除:

1[secondary_label Output]
2Deleted 'redirection' plugin.
3Success: Deleted 1 of 1 plugins.

您还可以通过附加--all旗帜来删除所有安装的插件,而不是单独指定插件名称:

1wp plugin delete --all

在此步骤中,您已经使用了WP-CLI来管理您的WordPress网站上的插件。在下一节中,您将利用WP-CLI来安装和管理WordPress主题。

步骤 3 – 配置主题

通过WP-CLI管理主题的过程几乎与您可以使用它来管理插件的方式相同. 在本节中,您将通过wp主题子命令来源并应用新的主题到WordPress网站。

首先,检查您目前在网站上安装了哪些主题:

1wp theme list

您将收到已安装的主题列表:

1[secondary_label Output]
2+-----------------+----------+-----------+---------+
3| name            | status   | update    | version |
4+-----------------+----------+-----------+---------+
5| twentynineteen  | inactive | available | 1.8     |
6| twentytwenty    | inactive | none      | 1.6     |
7| twentytwentyone | active   | available | 1.0     |
8+-----------------+----------+-----------+---------+

目前有三個主題已安裝,其中一個是「twentytwentyone」。如果你想找到有更多功能的東西,可以嘗試以下類型的搜索:

1wp theme search color

结果显示有832个主题匹配颜色搜索词:

 1[secondary_label Output]
 2Success: Showing 10 of 832 themes.
 3+---------------------+---------------------+--------+
 4| name                | slug                | rating |
 5+---------------------+---------------------+--------+
 6| Color               | color               | 0      |
 7| All Colors          | all-colors          | 100    |
 8| Color Blog          | color-blog          | 98     |
 9| Color Block         | color-block         | 0      |
10| X Blog color        | x-blog-color        | 0      |
11| Multicolor Business | multicolor-business | 0      |
12| ColorNews           | colornews           | 100    |
13| Colorist            | colorist            | 100    |
14| ColorMag            | colormag            | 98     |
15| MultiColors         | multicolors         | 74     |
16+---------------------+---------------------+--------+

您可以通过使用--page的旗帜页面结果。对于这个例子,只需继续安装ColorMag主题,因为它具有相当好的评级。

1wp theme install colormag --activate

输出将确认安装:

1[secondary_label Output]
2Installing ColorMag (2.0.4)
3Downloading installation package from https://downloads.wordpress.org/theme/colormag.2.0.4.zip...
4Unpacking the package...
5Installing the theme...
6Theme installed successfully.
7Activating 'colormag'...
8Success: Switched to 'ColorMag' theme.
9Success: Installed 1 of 1 themes.

如果您访问您的网站,您会发现ColorMag主题已成功应用。

ColorMag theme

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

1wp theme update --all

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

 1[secondary_label Output]
 2Downloading update from https://downloads.wordpress.org/theme/twentynineteen.1.9.zip...
 3Unpacking the update...
 4Installing the latest version...
 5Removing the old version of the theme...
 6Theme updated successfully.
 7Downloading update from https://downloads.wordpress.org/theme/twentytwentyone.1.1.zip...
 8Unpacking the update...
 9Installing the latest version...
10Removing the old version of the theme...
11Theme updated successfully.
12+-----------------+-------------+-------------+---------+
13| name            | old_version | new_version | status  |
14+-----------------+-------------+-------------+---------+
15| twentynineteen  | 1.8         | 1.9         | Updated |
16| twentytwentyone | 1.0         | 1.1         | Updated |
17+-----------------+-------------+-------------+---------+
18Success: Updated 2 of 2 themes.

wp主题命令提供了许多子命令,可以帮助您完成任务,例如获取主题的详细信息,检查是否安装特定的主题,甚至删除一个或多个主题。

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

步骤 4 – 创建文章和页面

WP-CLI提供了通过命令行管理内容的几种方法,如果您熟悉命令行编辑器,如 nanovim的话,在终端中写帖子可能会更方便。

您可以浏览网站上的帖子列表:

1wp post list

您将收到一份邮件列表:

1[secondary_label Output]
2+----+--------------+-------------+---------------------+-------------+
3| ID | post_title   | post_name   | post_date           | post_status |
4+----+--------------+-------------+---------------------+-------------+
5| 1  | Hello world! | hello-world | 2021-01-24 12:32:06 | publish     |
6+----+--------------+-------------+---------------------+-------------+

输出显示了一个发表的帖子,标题为Hello world!和一个ID为1。 要删除这个帖子,请使用wp post delete命令并传递该帖子ID:

1wp post delete 1

您的输出将确认邮件的删除:

1[secondary_label Output]
2Success: Trashed post 1.

要创建一个新的帖子,运行以下命令:

1wp post create --post_status=publish --post_title="Sample post created with WP-CLI" --edit

此命令使用--post_status旗帜来设置帖子的状态。将其设置为发布确保该帖子在运行该命令后立即发布。如果您想创建草案,则将--post_status旗帜设置为draft--post_title旗帜是您如何指定帖子的标题,而--edit会导致帖子体在默认系统编辑器(vim)中打开。您可以通过在终端中键入wp help post create来查找与Create子命令一起使用的其他旗帜。

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

1[secondary_label Output]
2Success: Created post 6.

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

WP-CLI post

而不是在命令行上写帖子,还可以从文本文件中导入帖子内容。

1touch content.txt

接下来,在命令行编辑器中打开文件以添加或编辑您的内容:

1nano content.txt

一旦你完成了编辑,保存并关闭文件,按CTRL-X,然后按Y来保存。你可以将该文件的内容导入为WordPress帖子,使用以下命令。

1wp post create ./content.txt --post_title='Sample Post Created with WP-CLI' --post_status=publish

如果您想创建页面而不是帖子,请附上--post_type旗,并将其设置为page:

1wp post create --post_title="A simple page" --post_status=draft --post_type=page

创建帖子或页面

WP-CLI 还提供了一个选项,可以清洁地生成邮件和页面,使用虚假数据. 如果您需要自定义数据来快速测试您正在开发的主题或插件,则有用。

1wp post generate

您可以通过使用 - 计数旗帜来更改生成的帖子的数量:

1wp post generate --count=20

如果您想生成页面而不是帖子,请附上--post_type旗,并将其设置为page:

1wp post generate --count=20 --post_type=page

您还可以使用wp帮助邮件生成来查看其他可用的选项,可以帮助您获得所需的结果。

WordPress 更新

由于多年的内容编辑和更新,较旧的网站在其主页上有数十或数百次修订并不罕见。如果您需要返回内容的以前版本,修订可以是有帮助的,但如果有太多,它们也可以损害性能。

1wp post delete $(wp post list --post_type='revision' --format=ids) --force

列表中包含的命令首先被评估,它会产生所有存在的邮件修订的ID并将其传递到删除子命令中。

步骤五:管理您的数据库

WP-CLI 最有用的功能之一是与 MySQL 数据库互动的能力,例如,如果您需要一个交互式会话,您可以使用以下命令输入 MySQL 提示:

1wp db cli

然后,您可以像通常一样使用MySQL壳,一旦完成任务,通过键入退出来退出壳。

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

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

您将收到一个类似于以下的输出:

1[secondary_label Output]
2+------------+----+
3| user_login | ID |
4+------------+----+
5| admin      |  1 |
6+------------+----+

使用「wp db 查詢」,您可以為 WordPress 資料庫執行任何一次性 SQL 查詢。

备份和恢复

WP-CLI 还允许您备份您的 WordPress 数据库. 运行以下命令将将 SQL 丢弃文件放入当前目录. 此文件包含您的整个 WordPress 数据库,包括您的帖子,页面,用户帐户,菜单等:

1wp db export

一旦生成该文件,您可以将其移动到另一个位置进行存储:

1[secondary_label Output]
2Success: Exported to 'wordpress-2021-01-25-25618e7.sql'.

您还可以通过wp db import命令导入SQL垃圾文件到您的数据库,这在将WordPress网站从一个位置迁移到另一个位置时非常有用。

1wp db import file.sql

寻找和替代

您可以使用 WP-CLI 执行的另一个常见操作是查找和更换操作. 您可以先进行干燥运行,以了解它会修改多少个实例。

1wp search-replace --dry-run 'example.com' 'example.net'

运行此操作后,您的输出将类似于以下:

1[secondary_label Output]
2Success: 10 replacements to be made.

一旦你确定你想要继续,从上一个命令中删除干运行旗帜:

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

在此步骤中,您已经审查了您可以使用 WP-CLI 执行的多个数据库操作,您还可以完成其他操作,例如优化数据库、查看数据库表、删除数据库或重置一个数据库。

第6步:更新WordPress

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

1wp core version
1[secondary_label Output]
25.6

您可以通过wp core check-update命令检查更新,如果您的版本不是最新版本,则会产生类似于以下的输出:

1[secondary_label Output]
2+---------+-------------+-----------------------------------------------------------------------+
3| version | update_type | package_url                                                           |
4+---------+-------------+-----------------------------------------------------------------------+
5| 5.6.1   | minor       | https://downloads.wordpress.org/release/wordpress-5.6.1-partial-0.zip |
6+---------+-------------+-----------------------------------------------------------------------+

如果更新可用,您可以通过:

1wp core update
1[secondary_label Output]
2Updating to version 5.6.1 (en_US)...
3PHP 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
4Warning: 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
5Downloading update from https://downloads.wordpress.org/release/wordpress-5.6.1-partial-0.zip...
6Unpacking the update...
7Success: WordPress updated successfully.

您也可以通过将--version标志设置为版本号来更新到特定版本. 如果您想返回旧版本,您还需要添加--force标志,但不建议:

1wp core update --version=5.6
2wp core update --version=5.0 --force

在这个最后一步中,您更新了您的 WordPress 版本,使用 WP-CLI。

结论

对于WordPress开发人员和管理员的工作命令行,WP-CLI是工具箱的一个很好的补充. 在本教程中,我们涵盖了几个更常见的任务,你可以通过命令行执行。

WP-CLI 有许多更多的命令和选项,您可以熟悉,以便在命令行上实现更多,而无需 Web 界面。 使用「wp 帮助 」来了解您可以用特定子命令完成的所有事情。

有关WordPress的更多教程,请参阅我们的WordPress主题页面(https://andsky.com/tags/wordpress)。

Published At
Categories with 技术
comments powered by Disqus