什么是WP-CLI? 初学者指南

WP-CLI已经存在了一段时间(大约在2011年),并且在WordPress开发人员社区中稳步增长。 但是它到底是什么?如何在WordPress工作流程中使用它?

WP-CLI背后的想法是,它允许您通过命令行界面与WordPress站点进行交互和管理。 根据官方文档,它是使用传统WordPress管理员用户界面的命令行替代。

命令行方法很有意义,因为您通常可以通过命令行在计算机上更快地完成操作,而WP-CLI也不例外。 如果您曾经在Windows上使用过命令行,或者在macOS上使用过Terminal,那么您将可以在家使用WP-CLI。

但是,这是针对初学者的教程,所以如果您不是命令行专家,请不要担心。 如果您以前从未使用过WP-CLI或命令行,那么您将处于良好的状态,而且绝对在正确的位置!

在我们进一步之前,我要坦白。 如上所述,我以前从未真正使用过WP-CLI! 我已经了解了很长时间,并且一直很想尝试它,但是从来没有真正安装和使用它。 到现在为止

因此,我们将在字面意义上共同努力,并研究如何将WP-CLI作为完整的初学者使用。 我真的很想知道WP-CLI如何适合我现有的WordPress开发工作流程,以及它是否有助于提高生产力。

你准备好开始了吗? 好吧,走吧!

安装WP-CLI

首次安装WP-CLI似乎有些艰巨。 在理解之前,我不得不阅读了几次安装说明。 但是,事实证明,只要您确切地了解需要什么,就没有那么困难。

首先,我们需要获取最新版本的WP-CLI。 推荐的方法是通过命令行将WP-CLI下载为Phar文件。 这只是一个PHP存档文件,其中包含运行WP-CLI所需的所有PHP文件,所有文件都包装在一个方便的文件中,可供我们下载。

在macOS上安装

打开一个终端窗口,然后输入以下内容:

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

这会将WP-CLI Phar文件下载到您的计算机。 让我们通过测试WP-CLI存档来检查一切正常。

php wp-cli.phar --info

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

PHP binary:    /usr/bin/php
PHP version:	5.6.30
php.ini used:
WP-CLI root dir:	phar://wp-cli.phar
WP-CLI packages dir:
WP-CLI global config:
WP-CLI project config:
WP-CLI version:	1.1.0

为了使使用WP-CLI更方便,我们希望能够在任何地方通过较短的命令(如wp运行它,而不必每次都键入wp-cli.phar

我们可以通过以下两个命令来做到这一点:

chmod +x wp-cli.phar
sudo mv wp-cli.phar /usr/local/bin/wp

现在尝试在终端窗口(指向任何目录)中运行wp --info 。 如果您在运行php wp-cli.phar --info时看到的输出与之前相同,那么您就是在做生意。 WP-CLI已设置好并可以使用!

还有其他安装WP-CLI的方法,例如通过Composer,因此,如果您在建议的默认方法中苦苦挣扎,则可能要查看其他方法。

在Windows上安装

由于默认情况下命令行中不提供PHP,因此在Windows上的安装要稍微复杂一些。 您可以手动安装PHP,但是最简单的方法是使用本地开发服务器(例如MAMP),因为PHP是作为整个软件包的一部分自动安装的。

一旦PHP在您的系统上可用,您将需要找到PHP可执行文件的路径并使其在全球范围内可用( PHP手册中对此进行了详细介绍)。

安装PHP并从任何目录均可使用PHP时,请手动下载wp-cli.phar文件并将其保存到c:\wp-cli等文件夹中。 为了能够像在macOS上一样通过wp命令运行WP-CLI,请在与保存wp-cli.phar存档文件相同的文件夹中创建一个名为wp.bat的批处理文件。

将此添加到批处理文件中:

@ECHO OFF
php "c:/wp-cli/wp-cli.phar" %*

最后,将c:\wp-cli添加到全局路径:

setx path "%path%;c:\wp-cli"

WP-CLI现在应该可以从任何命令行窗口中使用。

更简单的方法!

如果您现在有点失落,那么我可能会为您提供一条生命线。 如果您是DesktopServer用户,那么WP-CLI的设置非常容易。 从DesktopServer 3.8.2开始,将提供一个新的开发人员插件,该插件可在您所有的开发站点上安装WP-CLI!

使用DesktopServer安装WP-CLI

激活后,您可以通过DesktopServer主站点列表或WordPress工具栏访问WP-CLI。

通过网络浏览器访问WP-CLI
通过WordPress访问WP-CLI

如果您确实可以访问DesktopServer,那么我绝对建议您以这种方式安装WP-CLI,因为它是迄今为止最简单的设置方法。 在过去的两年中,我已经使用了DesktopServer,因此很幸运,WP-CLI的安装对我来说很容易。

远程使用WP-CLI

本教程适用于使用本地WordPress安装的WP-CLI新手。 但是,如果您想在远程服务器(即实时WordPress网站)上执行命令,那么如果您已安装WP-CLI,仍然可以继续执行。

您需要能够通过SSH客户端连接到服务器,并方便使用托管帐户登录详细信息。 连接并登录后,您将可以使用本教程中的所有WP-CLI命令。

值得联系您的主机,以查看他们是否支持WP-CLI,因为安装起来要简单得多。

测试水域

希望到目前为止,您已经安装了WP-CLI,在这种情况下,您可以轻松一点,因为您已经完成了最困难的部分!

在您要使用的WordPress网站的根目录中打开一个命令行窗口,其外观应类似于以下屏幕截图。

准备使用WP-CLI

使用DesktopServer的一个优点是它会自动打开一个指向正确的WordPress根目录的命令窗口。 我认为这很不错,尤其是当您在多个站点上工作时。

现在让我们测试一下WP-CLI的安装。 这是我们的第一个命令

wp --info
PHP binary:     C:\xampplite\php\php.exe
PHP version:    5.5.24
php.ini used:   C:\xampplite\php\php.ini
WP-CLI root dir:        C:\xampplite\ds-plugins\ds-cli\vendor\wp-cli\wp-cli
WP-CLI packages dir:
WP-CLI global config:
WP-CLI project config:
WP-CLI version: 1.0.0

因此,要访问WP-CLI,请键入wp然后输入命令和/或参数。 如果输入wp ,您将获得一长串可用的命令和参数(我不会在这里显示,但您可以自己尝试)。

我们的第一个命令包含一个参数。 区别在于参数前面有两个连字符。 WP-CLI的关键是几乎所有命令都包含子命令(和参数)。 该层次结构组织得很好,易于理解和遵循。

所有命令都遵循类似的结构,因此,一旦您掌握了几个命令,就会发现扩展到学习更多命令很容易。 本教程的其余部分将关于学习WP-CLI中可用的一些命令和参数。

让我们看一些基本的WP-CLI命令及其输出,以了解其工作原理。

首先,让我们获取正在运行的WP-CLI的当前版本。

wp --version

WP-CLI 1.0.0

我们可以运行类似的命令来查找WordPress的当前版本。

wp core version
4.7.3

当前安装的所有主题列表如何?

wp theme list
+-----------------+----------+--------+---------+
| name            | status   | update | version |
+-----------------+----------+--------+---------+
| twentyfifteen   | inactive | none   | 1.7     |
| twentyseventeen | active   | none   | 1.1     |
| twentysixteen   | inactive | none   | 1.3     |
| twentyten       | inactive | none   | 2.2     |
+-----------------+----------+--------+---------+

注意我们如何也获得有用的信息,例如主题的状态及其版本,以及是否有更新。

我们可以对插件执行相同的操作。

wp plugin list
+-------------+----------+--------+------------+
| name        | status   | update | version    |
+-------------+----------+--------+------------+
| akismet     | inactive | none   | 3.3        |
| hello       | inactive | none   | 1.6        |
| theme-check | inactive | none   | 20160523.1 |
+-------------+----------+--------+------------+

我们可以利用参数来完善插件列表。

wp plugin list --fields=name,version
+-------------+------------+
| name        | version    |
+-------------+------------+
| akismet     | 3.3        |
| hello       | 1.6        |
| theme-check | 20160523.1 |
+-------------+------------+

在这里,我们有一个参数,要求指定一个或多个值。 这很常见,您很快就会习惯。 在这种情况下,我们仅列出了要显示的字段(名称,版本)。

我们也只能显示满足特定条件的插件。

wp plugin list --status=inactive
+-------------+----------+--------+------------+
| name        | status   | update | version    |
+-------------+----------+--------+------------+
| akismet     | inactive | none   | 3.3        |
| hello       | inactive | none   | 1.6        |
| theme-check | inactive | none   | 20160523.1 |
+-------------+----------+--------+------------+

由于所有插件当前均处于非活动状态,因此仅会再次输出所有插件。 我们将在开始输入命令以管理插件(和主题)时不久更改此设置。

您可能已经在上面的命令中注意到,使用了两个命令字( pluginlist )。 如果您自己输入wp plugin ,则不会运行命令,而是列出wp plugin所有子命令。 自己尝试。

wp plugin
usage: wp plugin activate [<plugin>...] [--all] [--network]
   or: wp plugin deactivate [<plugin>...] [--uninstall] [--all] [--network]
   or: wp plugin delete <plugin>...
   or: wp plugin get <plugin> [--field=<field>] [--fields=<fields>] [--format=<format>]
   or: wp plugin install <plugin|zip|url>... [--version=<version>] [--force] [--activate] [--activate-network]
   or: wp plugin is-installed <plugin>
   or: wp plugin list [--<field>=<value>] [--field=<field>] [--fields=<fields>] [--format=<format>]
   or: wp plugin path [<plugin>] [--dir]
   or: wp plugin search <search> [--page=<page>] [--per-page=<per-page>] [--field=<field>] [--fields=<fields>] [           --format=<format>]
   or: wp plugin status [<plugin>]
   or: wp plugin toggle <plugin>... [--network]
   or: wp plugin uninstall <plugin>... [--deactivate] [--skip-delete]
   or: wp plugin update [<plugin>...] [--all] [--format=<format>] [--version=<version>] [--dry-run]

See 'wp help plugin <command>' for more information on a specific command.

因此, list命令只是可用于“父” plugin命令的多个子命令之一。 许多其他命令也以类似的方式工作。

键入wp corewp theme可以查看其子命令列表。

您也可以在同一行上使用多个参数。 例如,如果我们要列出具有可用更新的插件,并限制输出字段,则可以将参数组合到一行,如下所示:

wp plugin list --fields=name,version --update=available

默认情况下,您会获得以表格式输出的WP-CLI命令的结果,但是可以很容易地将其更改为JSON或逗号分隔值(CSV),而无需使用--format参数。

wp plugin list --format=json
[{"name":"akismet","status":"inactive","update":"none","version":"3.3"},{"name":"hello","status":"inactive","update":"none","version":"1.6"},{"name":"theme-check","status":"inactive","update":"none","version":"20160523.1"}]
wp plugin list --format=csv
name,status,update,version
akismet,inactive,none,3.3
hello,inactive,none,1.6
theme-check,inactive,none,20160523.1

现在我们已经掌握了如何输入基本的WP-CLI命令的方法,让我们看看如何通过命令行执行一些有用的WordPress管理任务。

插件和主题

当您开始通过命令行操作WordPress时,WP-CLI的真正功能将变得清晰。 在本节中,我们将看到通过WP-CLI安装/删除以及激活/停用插件和主题有多么容易。

对于WordPress存储库中托管的插件和主题,只需在install命令之后输入名称,如下所示:

wp plugin install jetpack
Installing Jetpack by WordPress.com (4.8.2)
Downloading install package from https://downloads.wordpress.org/plugin/jetpack.4.8.2.zip...
Unpacking the package...
Installing the plugin...
Plugin installed successfully.
Success: Installed 1 of 1 plugins.

让我们再次输出插件列表,以确保已安装Jetpack,但是这次只列出插件名称。

wp list plugin --fields=name
+-------------+
| name        |
+-------------+
| akismet     |
| hello       |
| jetpack     |
| theme-check |
+-------------+

我们可以通过类似的方式安装主题:

wp theme install twentyeleven
Installing Twenty Eleven (2.5)
Downloading install package from https://downloads.wordpress.org/theme/twentyeleven.2.5.zip...
Unpacking the package...
Installing the theme...
Theme installed successfully.
Success: Installed 1 of 1 themes.

让我们检查一下“二十一”主题是否已正确安装:

wp theme list
+-----------------+----------+--------+---------+
| name            | status   | update | version |
+-----------------+----------+--------+---------+
| twentyeleven    | inactive | none   | 2.5     |
| twentyfifteen   | inactive | none   | 1.7     |
| twentyseventeen | active   | none   | 1.1     |
| twentysixteen   | inactive | none   | 1.3     |
| twentyten       | inactive | none   | 2.2     |
+-----------------+----------+--------+---------+

对于其他地方托管的插件和主题,只需输入zip文件的完整路径。 插件/主题名称实际上是“ slug”,如果您的插件/主题名称由多个单词组成,则很容易记住。

例如,要从WordPress存储库安装主题检查插件,请执行以下操作:

wp plugin install theme-check

要激活插件,请使用activate命令。

wp plugin activate jetpack

或者,您可以同时安装并激活插件。

wp plugin install jetpack --activate

要删除插件,请使用delete命令。

wp plugin delete jetpack

请注意,在我们删除插件之前,不必像在WordPress管理员中那样取消激活插件。 主题的安装/激活/删除过程相同。

帖子和页面

有各种WP-CLI命令来管理任何类型的帖子,包括大量生成帖子的方法。

首先,让我们输出当前的帖子列表。

wp post list
+----+---------+---------+---------+---------+
| ID | post_ti | post_na | post_da | post_st |
|    | tle     | me      | te      | atus    |
+----+---------+---------+---------+---------+
| 1  | Hello w | hello-w | 2017-04 | publish |
|    | orld!   | orld    | -04 09: |         |
|    |         |         | 18:12   |         |
+----+---------+---------+---------+---------+

现在,让我们生成一些帖子。

wp post generate --count=5
Generating posts  100% [=============] 0:03 / 0:02

让我们再次查看更新后的帖子列表。

wp post list
+----+---------+---------+---------+---------+
| ID | post_ti | post_na | post_da | post_st |
|    | tle     | me      | te      | atus    |
+----+---------+---------+---------+---------+
| 32 | Post 2  | post-2  | 2017-04 | publish |
|    |         |         | -14 19: |         |
|    |         |         | 01:24   |         |
| 33 | Post 3  | post-3  | 2017-04 | publish |
|    |         |         | -14 19: |         |
|    |         |         | 01:24   |         |
| 34 | Post 4  | post-4  | 2017-04 | publish |
|    |         |         | -14 19: |         |
|    |         |         | 01:24   |         |
| 35 | Post 5  | post-5  | 2017-04 | publish |
|    |         |         | -14 19: |         |
|    |         |         | 01:24   |         |
| 36 | Post 6  | post-6  | 2017-04 | publish |
|    |         |         | -14 19: |         |
|    |         |         | 01:24   |         |
| 1  | Hello w | hello-w | 2017-04 | publish |
|    | orld!   | orld    | -04 09: |         |
|    |         |         | 18:12   |         |
+----+---------+---------+---------+---------+

如您所见,已经创建了五个新帖子,每个帖子都有一个通用标题,没有帖子内容。 我们可以为任何帖子类型生成任意数量的帖子。

wp post generate --post_type=page --count=3
Generating posts  100% [=============] 0:02 / 0:03

这将生成三个具有通用标题且没有页面内容的新页面。 我不太确定大量后期制作的用处。 但是,它对于测试目的可能非常有用。

wp post list --post_type=page
+----+---------+---------+---------+---------+
| ID | post_ti | post_na | post_da | post_st |
|    | tle     | me      | te      | atus    |
+----+---------+---------+---------+---------+
| 42 | Page 2  | post-2  | 2017-04 | publish |
|    |         |         | -14 19: |         |
|    |         |         | 06:21   |         |
| 43 | Page 3  | post-3  | 2017-04 | publish |
|    |         |         | -14 19: |         |
|    |         |         | 06:21   |         |
| 44 | Page 4  | post-4  | 2017-04 | publish |
|    |         |         | -14 19: |         |
|    |         |         | 06:21   |         |
| 22 | Title   | title   | 2017-04 | publish |
|    |         |         | -07 15: |         |
|    |         |         | 42:27   |         |
| 2  | Sample  | sample- | 2017-04 | publish |
|    | Page    | page    | -04 09: |         |
|    |         |         | 18:12   |         |
+----+---------+---------+---------+---------+

如果我们要创建单个帖子,则可以完全控制帖子内容。 让我们创建一个具有特定标题和示例内容的帖子。

wp post create --post_title='Just a Post' --post_content='I wandered lonely as a cloud.' --post_status='publish'
Success: Created post 45.

这将创建具有特定标题和内容的帖子。 默认情况下,将以草稿状态创建帖子,因此,如果我们希望立即发布它们,则需要将post_status参数设置为publish

创建包含内容的页面也很容易,只需将post_type参数设置为page (默认情况下设置为post)。

wp post create --post_type=page --post_title='Welcome to a New Dawn' --post_content='Read on for some amazing insights.' --post_status=publish

我们还可以使用update命令更新现有帖子。

wp post update 45 --post_content='I just updated the post content via the WP-CLI.' --post_status='publish'
Success: Updated post 45.

确保帖子ID正确; 否则,您将收到Warning: Invalid post ID错误消息。 同样,您可以更新任何帖子类型,而不仅仅是帖子!

如您所愿,您也可以通过WP-CLI删除帖子。

wp post delete 45
Success: Trashed post 45.

这会将帖子发送到垃圾箱。 如果要绕过此操作而只是永久删除帖子,则添加--force参数。

wp post delete 45 --force

总的来说,我认为通过WP-CLI管理帖子非常直观。 每次创建或更新帖子时,我都不必记住很多细节。

这很棒,因为这意味着我更有可能继续回到WP-CLI,而不是偷偷回到使用我更习惯的舒适WordPress管理员用户界面。

WordPress评论

管理评论与帖子非常相似。 要查看您网站上的所有评论,请使用以下命令:

wp comment list
+------------+-----------------+---------------------+------------------+-----------------------+-------------------------+
| comment_ID | comment_post_ID | comment_date        | comment_approved | comment_author        | comment_author_email    |
+------------+-----------------+---------------------+------------------+-----------------------+-------------------------+
| 1          | 1               | 2017-04-04 09:18:12 | 1                | A WordPress Commenter | wapuu@wordpress.example |
+------------+-----------------+---------------------+------------------+-----------------------+-------------------------+

不过请小心-如果您的网站上有很多评论,这可能需要一段时间!

要创建评论,请使用我们现在熟悉的create命令。

wp comment create --comment_post_ID=1 --comment_content='Just adding my 2 cents worth!'
Success: Created comment 24.
wp comment list
+------------+-----------------+---------------------+------------------+-----------------------+-------------------------+
| comment_ID | comment_post_ID | comment_date        | comment_approved | comment_author        | comment_author_email    |
+------------+-----------------+---------------------+------------------+-----------------------+-------------------------+
| 24         | 1               | 2017-04-14 19:24:45 | 1                |                       |                         |
| 1          | 1               | 2017-04-04 09:18:12 | 1                | A WordPress Commenter | wapuu@wordpress.example |
+------------+-----------------+---------------------+------------------+-----------------------+-------------------------+

请注意,要生成评论,我们需要指定现有帖子的ID以及评论内容。

就像我们对帖子所做的一样,也可以轻松生成大量评论。

wp comment generate --count=3 --post_id=1
Generating comments  100% [==========] 0:02 / 0:03
wp comment list
+------------+-----------------+---------------------+------------------+-----------------------+-------------------------+
| comment_ID | comment_post_ID | comment_date        | comment_approved | comment_author        | comment_author_email    |
+------------+-----------------+---------------------+------------------+-----------------------+-------------------------+
| 26         | 1               | 2017-04-14 19:27:54 | 1                |                       |                         |
| 27         | 1               | 2017-04-14 19:27:54 | 1                |                       |                         |
| 25         | 1               | 2017-04-14 19:27:53 | 1                |                       |                         |
| 24         | 1               | 2017-04-14 19:24:45 | 1                |                       |                         |
| 1          | 1               | 2017-04-04 09:18:12 | 1                | A WordPress Commenter | wapuu@wordpress.example |
+------------+-----------------+---------------------+------------------+-----------------------+-------------------------+

如果不想生成100个虚拟注释,请确保指定count参数,因为默认值为100!

要删除评论,只需将以下命令与评论的ID配合使用即可,如果要跳过将其发送到垃圾箱的操作,也可以选择--force参数。

wp comment delete 26 --force
Success: Deleted comment 26.

不过请记住,此处的ID是评论ID,而不是帖子ID。

推荐的WP-CLI资源

这就是我们对WP-CLI的基本介绍。 如果您想更深入地了解和扩展知识,则下面是资源列表。

结论

我们只是简单介绍了WP-CLI的功能。 但希望您现在将有足够的信心来深入研究WP-CLI并尝试使用更高级的命令。

我们了解了WP-CLI是什么,以及它在日常WordPress开发中的有用性。 即使我们介绍的命令相当基本,它们仍然非常有用!

这是我个人第一次使用WP-CLI,回想起来,我可以诚实地说我不知道​​没有它怎么办。 这绝对是我看到自己使用更多东西的东西。

我想在更复杂的命令旁边获得一些经验,以真正了解使用WP-CLI可以做什么。

但是,某些用户(尤其是初学者)可能会被默认的建议安装过程推迟。 这很遗憾,因为WP-CLI非常有用,并且所有WordPress开发人员都应该至少检查一下。

它既有趣又有用。 如果您有权访问DesktopServer,则可以肯定地使用它来安装WP-CLI-这确实是一件容易的事。

最后,如果您对WordPress的更多开发感兴趣,请不要忘记查看Envato Tuts +上的其他WordPress材料

您是否已经使用过WP-CLI,或者这是您第一次尝试使用它? 如果是这样,您是如何前进的? 我希望听到您的评论!

翻译自: https://code.tutsplus.com/tutorials/what-is-wp-cli-a-beginners-guide--cms-28649

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值