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

金钱(警告)

** 状态:** 被贬值

如果您目前正在运行运行 Ubuntu 12.04 或 Ubuntu 12.10 的服务器,我们强烈建议升级或迁移到支持的 Ubuntu 版本:

** 原因:** Ubuntu 12.04 已于 2017 年 4 月 28 日到期(EOL)并且不再收到安全补丁或更新。

** 相反,请参阅:** 此指南可能仍然有用作为参考,但可能不会在其他Ubuntu版本上工作. 如果可用,我们强烈建议使用为您正在使用的Ubuntu版本撰写的指南。

介绍


WordPress 是一个非常受欢迎的博客和内容管理系统(CMS),由数以百万计的网站使用,可用于轻松地组织,管理和创建网页上的内容,并处理与访问者和贡献者的互动。

虽然大多数人使用WordPress为其图形界面,但能够从命令行控制软件有好处。

这有助于编写脚本,并允许您从一个地方管理网站的所有方面,从配置文件和数据库管理到发布,主题,上传媒体和批准评论。

在本指南中,我们将使用 wp-cli 界面来管理我们的 WordPress 安装。

如何安装 WP-CLI


本指南假定您使用 WordPress 应用程序图像创建了 VPS,如果您需要帮助,您可以使用此指南(https://www.digitalocean.com/community/articles/one-click-install-wordpress-on-ubuntu-12-10-with-digitalocean)。

当您完成部署您的 dropplet 时,SSH 将作为 root 用户进入服务器:

ssh root@server_ip_address

您应该在 root 用户的家庭目录中。

我们需要做的第一件事是安装git。这个版本控制系统在 wp-cli 安装过程中使用:

1apt-get update
2apt-get install git

接下来,我们可以拿到安装程序并使用该命令运行它,从项目的网站中获取:

1curl https://raw.githubusercontent.com/wp-cli/wp-cli.github.com/master/installer.sh | bash

这将安装一些必要的工具,使软件正常工作。

接下来,我们将为我们的 root 用户创建一个 .bash_profile 文件,并添加到 wp-cli 可执行和自动完成脚本的路径。

1nano ~/.bash_profile

在此文件中,放下以下两行:

1export PATH=/root/.wp-cli/bin:$PATH
2source $HOME/.wp-cli/vendor/wp-cli/wp-cli/utils/wp-completion.bash

保存并关闭文件。

现在,我们可以文件(重新读入我们的环境),以应用我们的更改:

1source ~/.bash_profile

现在,我们已经安装了界面,我们可以开始使用它。

切换到WordPress网页目录开始. 在单击的安装,这是在这里:

1cd /home/wordpress/public_html

使用 WP-CLI 安装网站


如果这是一个全新的VPS实例,那么你甚至没有完成基本配置. 如果你已经通过了网站初始化过程,请放心跳过这个步骤。

如果您键入wp,即用于与 wp-cli 接口进行交互的命令,您将收到以下消息:

1wp

1Error: The site you have requested is not installed.
2Run `wp core install`.

您可以通过在您的网页浏览器中访问您的IP地址或域名来初始化网站,并填写一个看起来像这样的表格:

WordPress Installation page

然而,由于这是关于如何使用 wp-cli 的指南,我们将在一个命令中填写所有这些信息,我们通过执行核心安装来完成此操作。

我们将不得不通过该页面上所要求的所有字段作为参数,这是以以下一般格式完成的:

--parameter="value"

我们需要定义的参数是:

  • url:将用于访问您的网站的域名. 如果您没有域名,您可以使用您的 IP 地址
  • title: 您的网站的标题
  • admin_user: 您将使用的登录和执行管理网站功能的名称
  • admin_password: 用户管理员的相关密码
  • admin_email: 电子邮件地址,您想联系网站问题

我们在核心命令和安装子命令后添加这些命令。

wp core install --url="your_domain_name"  --title="Your Blog Title" --admin_user="admin" --admin_password="your_password" --admin_email="your_email"

此过程可能需要一些时间来配置所有必要的组件. 当它完成时,您应该看到一行说:

1Success: WordPress installed successfully.

如果我们在浏览器中访问我们的网站,我们应该看到默认的WordPress网站:

WordPress default page

如何使用 WP-CLI 帮助系统


虽然 wp-cli 不包含传统的手册页面,但它包含一个强大的内部帮助系统。

1wp help

 1DESCRIPTION
 2
 3  Manage WordPress through the command-line.
 4
 5SYNOPSIS
 6
 7  wp <subcommand>
 8
 9SUBCOMMANDS
10
11  cache Manage the object cache.
12  cap Manage user capabilities.
13  cli Get information about WP-CLI itself.
14. . .

您可以看到 wp-cli 使用的所有顶级子命令来操纵 WordPress 的不同区域。

出门,类型:

1q

这个第一个级别也许最好通过键入wp,然后按几次键,以查看可用的子命令:

1wp <tab><tab>

1cache eval network-meta role theme
2cap eval-file option scaffold transient
3cli export plugin search-replace user
4comment help post shell user-meta
5core import post-meta site            
6db media rewrite term

然后,您可以使用帮助系统对 specific 子命令进行查询:

1wp help theme

 1NAME
 2
 3  wp theme
 4
 5DESCRIPTION
 6
 7  Manage themes.
 8
 9SYNOPSIS
10
11  wp theme <subcommand>
12
13SUBCOMMANDS
14
15  activate Activate a theme.
16  delete Delete a theme.
17. . .

正如你所看到的,这些子命令中的每一个都有其 own 子命令. 帮助系统运行整个命令结构:

1wp help theme install

1NAME
2
3  wp theme install
4
5DESCRIPTION
6
7  Install a theme.
8. . .

这样,你可以得到帮助,几乎任何你想要使用的系统的方面。

如何使用 WP-CLI 安装主题


为了展示一些基本的 wp-cli 使用,我们将做任何人创建新博客时做的第一件事之一:获取一个新主题。

首先,让我们看看我们已经安装了哪些主题:

1wp theme list

1+----------------+----------+--------+---------+
2| name           | status   | update | version |
3+----------------+----------+--------+---------+
4| twentythirteen | active   | none   | 1.1     |
5| twentytwelve   | inactive | none   | 1.3     |
6+----------------+----------+--------+---------+

正如你所看到的,我们安装了两个主题,我们目前正在使用一个叫做二十三。这很好,但有点无聊。

让我们去寻找一些更令人兴奋的东西:

1wp theme search fancy

 1Success: Showing 5 of 5 themes.
 2+---------------+---------------+--------+
 3| name          | slug          | rating |
 4+---------------+---------------+--------+
 5| Bold Headline | bold-headline | 100    |
 6| Clearly       | clearly       | 90     |
 7| The Skeleton  | the-skeleton  | 100    |
 8| Metronome     | metronome     | 0      |
 9| Shipyard      | shipyard      | 0      |
10+---------------+---------------+--------+

我们可以看到,有5个主题声称是精彩的。Bold Headline看起来相当令人兴奋,并且有很好的评级。

1wp theme install bold-headline

如果我们再次检查,我们可以看到它已成功安装:

1wp theme list

1+----------------+----------+--------+---------+
2| name           | status   | update | version |
3+----------------+----------+--------+---------+
4| bold-headline  | inactive | none   | 1.2.5   |
5| twentythirteen | active   | none   | 1.1     |
6| twentytwelve   | inactive | none   | 1.3     |
7+----------------+----------+--------+---------+

我们可以通过键入激活我们的新主题:

1wp theme activate bold-headline

现在,如果我们访问我们的网站,我们可以看到我们的新主题已经应用:

WordPress new theme

这看起来相当好!

如何使用 WP-CLI 管理插件


您可以以类似于主题的方式管理插件,它们有许多相同的子命令:

1wp plugin list

1+---------+----------+--------+---------+
2| name    | status   | update | version |
3+---------+----------+--------+---------+
4| akismet | inactive | none   | 2.5.9   |
5| hello   | inactive | none   | 1.6     |
6+---------+----------+--------+---------+

我们有两个主题安装,但都没有活跃。

让我们获得一个可以促使用户在社交媒体网站上分享内容的插件. 有一个名为Digg-Digg的插件,以此而闻名:

1wp plugin search Digg

我们可以看到几种不同的替代方案。让我们实际上切换它并安装aas-digg-digg-alternative插件。

1wp plugin install aas-digg-digg-alternative

我们可以通过键入激活插件:

1wp plugin activate aas-digg-digg-alternative

我们可以通过访问我们的帖子之一看到结果:

WordPress Plugin demonstration

如何使用 WP-CLI 管理内容


如果您喜欢使用命令行编辑器编写帖子,您可以通过 wp-cli 界面创建整个博客帖子。

要获得你的博客上的帖子列表,键入:

1wp post list

1+----+--------------+-------------+---------------------+-------------+
2| ID | post_title   | post_name   | post_date           | post_status |
3+----+--------------+-------------+---------------------+-------------+
4| 1  | Hello world! | hello-world | 2013-10-31 20:02:18 | publish     |
5+----+--------------+-------------+---------------------+-------------+

现在,只有默认消息。而不是删除这个帖子,让我们编辑它,以便它更有用。

1wp post edit 1

删除内容并将其替换为:

1Hello. This is my first official blog post. I hope to be adding some additional content here soon.
2
3Have a great day!

当您保存并关闭文件时,更改将是真实的,我们还应该更改标题以匹配我们的新内容:

1wp post update 1 --post_title="An Introduction..."

您可以通过重新浏览您的博客来查看您的新内容:

WordPress edited post

我们可以通过输入这样的东西添加一个全新的帖子:

1wp post create --post_status=publish --post_title="Second Post" --edit

这将打开一个编辑器,我们可以输入我们的第二篇文章:

1Hello.
2
3Here is another post.
4
5I am becoming quite prolific.

如何使用 WP-CLI 进行数据库查询


wp-cli 最有用的功能之一是与 SQL 后端的集成。

您可以在交互式会话中直接进入WordPress数据库,键入:

1wp db cli

这会给你一个MySQL提示,你可以使用它来做任何类型的数据库管理需要。

1exit

对于大多数常见的数据库操作,您可以直接从 wp-cli 界面控制它。

为了查询我们的用户及其相关的ID,我们可以使用一些如:

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

1+------------+----+
2| user_login | ID |
3+------------+----+
4| admin      |  1 |
5+------------+----+

正如你所看到的,我们只有一个用户。我们可以使用这些信息来更新我们刚刚创建的帖子. 让我们在我们的帖子中添加一个作者字段。

1wp post update 6 --post_author=1

现在,我们的帖子应该有一个作者在我们的内容旁边列为admin

我们可以通过键入优化我们的数据库:

1wp db optimize

如何使用WP-CLI更新WordPress


我们可以通过执行以下程序来保持WordPress的最新状态:

1wp core update
2wp core update-db

更重要的是,我们可以通过键入更新我们的插件,这些插件往往是WordPress安全中的弱链接:

1wp plugin update --all

结论


您现在应该对如何通过命令行完成WordPress中的任务有很好的掌握,这不仅是管理不同客户端的多个网站的快速和简单的方法,而且还提供了非常好的脚本功能,可以轻松完成非常复杂的任务。

通过有效地使用 wp-cli,您将不再需要在网页界面内可能无法实现的更改时不断切换网页浏览器和终端窗口。

By Justin Ellingwood
Published At
Categories with 技术
comments powered by Disqus