作者选择了自由软件基金会作为 写给捐款计划的一部分接受捐款。
介绍
WP-CLI是用于 WordPress开发和管理任务的命令行工具,它提供了几个命令,您可以使用来管理您的WordPress网站,而无需登录仪表板并导航页面。
使用WP-CLI来管理您的WordPress安装通过传统界面过程有助于加速您的工作流程. 对于您的网站的许多方面,您还可以使用Bash脚本中的WP-CLI来自动执行疲劳或需要很长时间的任务。
在本教程中,您将使用WP-CLI的许多功能,并发现它如何适应您的工作流程。您将涵盖管理插件和主题,创建内容,与数据库工作,并更新WordPress等常见操作。
前提条件
要遵循本教程,您将需要一个安全的WordPress安装. 如果您需要设置WordPress,您可以遵循以下教程为您选择的服务器部署:
您可以遵循我们的 初始服务器设置指南为此。
- Linux, Apache, MySQL, PHP (LAMP堆栈)安装在您的服务器上。 遵循 如何安装Linux, Apache, MySQL, PHP (LAMP)堆栈为您的服务器的分布。
- 一个安全的WordPress安装。 您可以通过以下设置设置 如何安装WordPress与LAMP堆栈)。
<$>[注] 注: 如果您没有现有设置,也可以安装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 – 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 – Fast & 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 – Clean, Compress, Cache. | wp-optimize | 96 |
16+------------------------------------------------------------+---------------------+--------+
您可以通过使用 - 页面
旗帜进入下一页:
1wp plugin search seo --page=2
请注意slug
列中的值,您将使用此值来安装或更新命令行上的插件。
安装插件
您可以使用wp plugin install
命令安装一个或多个插件,您可以找到您要安装的插件名称(在slug
列中),并将其作为参数传递到wp plugin install
。
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主题已成功应用。
wp主题列表
命令的输出指出,对于twentynineteen
和twentytwentyone
主题都有可用的更新,您可以使用以下命令更新它们:
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提供了通过命令行管理内容的几种方法,如果您熟悉命令行编辑器,如 nano或 vim的话,在终端中写帖子可能会更方便。
您可以浏览网站上的帖子列表:
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帖子列表
命令,您将找到您刚刚创建的帖子,您还可以检查网站的前端。
而不是在命令行上写帖子,还可以从文本文件中导入帖子内容。
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)。