10+ WP-CLI 技巧管理您的 WordPress 网站

WordPress 是一个很棒的项目,但与任何软件一样,您可能会希望能够某种后门访问您的代码和数据库。那些曾经尝试过重置管理员凭据却发现重置链接失效的人就知道我们在说什么了!

幸运的是,有一个解决方案可以提供帮助。WP-CLI 项目 让您可以通过命令行访问 WordPress 安装,这意味着您可以在终端中用几个快速指令来管理网站的大部分功能。

例如,如果您的“重置密码”链接失效了,您可以直接使用 WP-CLI 来更改密码。还有很多类似的情况 WP-CLI 都能派上用场。而且,我们就是喜欢在命令行中工作带来的那种黑客般的感觉。

在本文中,我们将介绍一些通常很繁琐的任务,WP-CLI 让这些任务变得几乎很有趣,并向您展示如何使用该工具完成它们。让我们开始吧!

wp cli 1

WP-CLI 项目简述

WP-CLI 代表 WordPress 命令行(首页),因为该工具让您可以通过命令行访问 WordPress 管理系统。

通常,您必须使用在线用户界面(wp-admin)手动管理 WordPress 网站。而且,修复一个损坏的网站或管理过渡期通常需要使用 FTP 客户端 翻阅文件或尝试编写自定义 PHP 代码。WP-CLI 通过为您提供直接访问的简写方式简化了网站操作过程,无需额外的插件。

wp cli

如果您以前从未使用过命令行,会有一个小的学习曲线。然而,一旦您开始使用,WP-CLI 可以显著加快您处理网站的方式。您将能够用几个按键管理复杂的数据库、插件和主题更改。如果您喜欢纯文本界面,您甚至可以使用它来管理评论、选项和菜单。(所有这些都将在本指南中进一步介绍。)

长话短说,WP-CLI 使许多困难的任务变得简单快捷。此外,WP-CLI 也是可扩展的。如果您有自定义需求,可以编写独特的脚本 来按照您的规范使用 WP-CLI 运行。

在我们继续之前,重要的是要认识到 WP-CLI 不是您 WordPress 网站的插件,而是安装在服务器上的工具。换句话说,如果您想使用 WP-CLI,您需要在本地开发环境和实时托管服务器上都安装它,以便获得一致的访问权限。这可能意味着寻找一个 提供预装 WP-CLI 的主机。

(注:在我们推荐的 WordPress 虚拟主机首选中,SiteGroundA2 HostingWP Engine 都为客户默认安装了 WP-CLI;换句话说,只要您在这些公司完成托管账户设置,就可以立即开始使用 WP-CLI)。

关于 WP-CLI 基础知识的进一步阅读:

如何使用 WP-CLI 管理您的 WordPress 网站

一旦 WP-CLI 安装完成,您就可以使用命令行打开您想要管理的 WordPress 网站所在的文件夹。如果您正在托管服务器上进行实时操作,则需要安全 shell 访问

不过,我们建议您先在开发环境中尝试这些命令!没有撤销按钮,因此您需要在使用此工具管理正式服务器之前相当熟悉它。为了帮助您入门,这里有四种在您的网站上练习使用 WP-CLI 的有用方法。

1. 快速查看 wp-config.php 文件

WP-CLI 在配置新站点方面一直非常高效。例如,实用的 wp config create 命令可以让您创建一个新的配置文件并将所有重要详细信息放入其中。通常比传统方式更快,尤其是如果您打字速度很快的话。

但 WP-CLI 更进一步。主 wp config 命令有两个子命令。

第一个是:

wp config getCode language: JavaScript (javascript)
  • 列出当前 wp-config.php 文件中定义的常量和全局变量。
get

另一个是:

wp config path
  • 简单地显示当前 wp-config.php 文件的路径。

如果您想更深入地了解您的 WordPress 安装,您还可以使用另一个 WP-CLI 命令:

wp db size --tables

这在帮助您决定是否需要进行一些数据库优化方面非常有用。

tables

2. 运行核心更新

通常,运行更新需要登录您的管理后台并点击几个页面来更新您的网站。

使用 WP-CLI,只需一个简单的命令即可轻松运行更新:

wp core update

这种方法 的独特之处在于它可以接受参数来自定义运行时的行为。假设您最近更新到的 WordPress 版本破坏了您网站上的一个关键插件。该插件的作者还没有机会更新,但您需要您的网站正常工作。虽然最好保持网站更新,但您可以通过在命令中添加 version 标志并回滚到没有冲突的版本来更改核心:

wp core update --version=4.7.1

像 WP-CLI 这样的脚本化解决方案的另一个有用功能是,您可以将其设置为定期为您安装的所有站点运行。对于管理多个站点的人来说,它非常可扩展。例如,使用 WP-CLI 附加组件如 Bluehost 的 WP Tools 可以让您自动运行服务器上每个网站的更新。

wp cli core
通过 WP-CLI 成功进行核心更新。

3. 更新、禁用和删除有问题的插件

通常,如果插件完全破坏了您的网站(甚至只是禁用了您的管理后台),您必须通过 FTP 登录并更改其文件夹名称才能将其禁用。另一方面,有一个简单的 WP-CLI 命令可以停用插件:

wp plugin deactivate plugin-name-example
wp cli plugin
使用 WP-CLI 成功停用插件。

如果一个插件给你带来严重麻烦,需要删除,你可以使用 delete 命令:

wp plugin delete plugin-name

另外,你也可以跳过插件的手动更新,运行类似于 WordPress 核心更新功能的命令:

wp plugin update --all

还有,我应该在开头就提到的,WP-CLI 还允许你 检查网站上插件的状态。为此,请使用:

wp plugin status
plugins 1

单独来看,这些命令似乎不能为你节省太多时间。然而,重要的是要记住,直接访问服务器比等待网络浏览器解释图形用户界面相关的所有脚本和样式要快得多。如果你经常需要管理这类任务,你可能会惊讶地发现你的额外时间积累得有多快。

4. 重置用户密码

想象一下,你丢失了 WordPress 管理员密码。你尝试了重置密码链接,但由于某种原因,重置邮件没有出现在你的收件箱中。你是不是永远无法访问你的 WordPress 网站了?有了 WP-CLI 就不必担心。

WP-CLI 提供快速的用户管理,包括使用以下命令重置密码的能力:

wp user update adminuser@example.com --user_pass=new-password
wp cli user
使用 WP-CLI 成功更新用户凭据。

有了如此简单的命令,就无需惊慌或担心使用复杂的变通方法来重新获得对你网站的访问权限。手动对密码进行哈希处理并直接插入数据库的日子已经一去不复返了……

此外,由于这是通过与服务器的安全连接完成的,你也不会因为使用这种方法而牺牲网站的安全性

5. 备份和操作数据库

WordPress 不容易让你直接与数据库交互。当你想要完成看似简单的任务(如不使用插件运行更新或搜索和替换一组短语)时,这可能会令人沮丧。

你可以使用 WP-CLI 使这些工作更容易。它允许你使用以下简单命令优化修复数据库:

wp db optimize
wp db repair

如果你正在编写自定义查询,可以使用查询命令快速测试它:

wp db query "SELECT * FROM wp_options"

然而,在你过于频繁地操作数据库之前,了解如何创建备份非常重要。WP-CLI 中创建 SQL 备份的命令如下:

wp db export

这将创建一个 SQL 文件*,你可以在出现问题时用它来恢复网站的数据库。它与备份插件结合使用效果也很好。

  • 文件名是随机分配的。要自定义文件名,请使用:
wp db export yourname.sql
wp cli db
WP-CLI 让操作网站数据库变得轻而易举。

6. 清理文章修订版本

文章修订版本 是我们在 CodeinWP 有点难以处理的问题。我们一些更新最频繁的文章有 200 多个修订版本,这让管理变得非常困难。

主要来说,当你在 WordPress 中进入标准的修订版本比较页面(下图)时,顶部会有一个工具条。通过它,你可以选择要比较的两个修订版本。如果你一篇文章的修订版本少于 20 个,这没问题。但是超过 100 个的话,这个工具条就变得无法点击了——我是说,你很难精确地点到你想找的那个修订版本——需要非常精准的点击才行。工具条太密集了。

revisions bar

为了在一定程度上解决这个问题,你可以在 wp-config.php 文件中设置每篇文章允许的修订版本数量限制(例如 define('WP_POST_REVISIONS', 40);)。但这只会限制你将来操作产生的修订版本。删除所有超过该限制的现有修订版本需要你自己动手。有几种方法可以做到这一点。一种是使用插件,另一种是使用 WP-CLI。

WP-CLI 的方式要快得多。要开始使用,你需要安装一个名为 wp-revisions-cli 的 WP-CLI 包。

可以通过一个简单的命令完成:

wp package install trepmal/wp-revisions-cli

之后,你可以使用几个很酷的新 WP-CLI 命令:

wp revisions clean
  • 删除所有文章上的旧修订版本。默认值为 WP_POST_REVISIONS 的值——只保留最新的修订版本。

或者,如果你想更手动地管理修订版本,例如,你可以控制特定文章的修订版本:

wp revisions list --post_id=ID
  • 列出给定文章的所有修订版本。
revisions

或者:

wp revisions clean --post_id=ID --before-date=DATE
  • 删除在某个日期(YYYY-MM-DD)或之前发布的给定文章上的修订版本。

总的来说,这是一个非常酷的功能,特别是如果你经常更新现有文章的话——这自然会产生很多修订版本。我很期待看到 wp-revisions-cli 包在未来会带来什么新功能。

7. 立即创建子主题

诚然,创建子主题 并不太难。但你仍然需要先查看 Codex 官方参考——以确保某些细节没有被更改,然后创建 functions.php 和 CSS,将其放入新目录,等等。

WP-CLI 提供了一个更快的方法。你只需要这样做:

wp scaffold child-theme NEW-CHILD-SLUG --parent_theme=SLUG --theme_name=TITLE

……就这样。你得到的结果是一个基于指定父主题的可用空白子主题。

child theme

还有一些额外的参数可用。例如,你可以这样做:

wp scaffold child-theme SLUG --parent_theme=SLUG --theme_name=TITLE --author=FULL-NAME --author_uri=URI --theme_uri=URI --activate --force
  • --force 会覆盖已存在的文件。

8. 创建大量测试用虚拟内容

在处理任何类型的 WordPress 项目时,虚拟内容可能是你经常需要的东西。

  • 也许你正在开发一个处理大量文章然后对它们进行某种操作的新插件。
  • 也许你想检查分页功能是否正常工作。
  • 也许你想在菜单中添加更多内容,用于测试目的。
  • 等等诸如此类……

通常,在这种情况下,我过去做的往往是按 Ctrl+F 开始查找那个讨厌的 WordPress 示例内容 XML 备份文件,这个文件我总是随手放在某个地方。但这很花时间,而且我似乎每次都找不到这个文件。

不过,正如你所想象的,WP-CLI 也有这方面的选项:

wp post generate --count=10
  • 创建 10 篇空文章;但你不必止步于 10 篇 —— WP-CLI 承诺 1000 也是一个完全可以执行的值。

或者,为了让内容更真实一些:

curl http://loripsum.net/api/4 | wp post generate --post_content --count=10
  • 创建 10 篇文章,每篇都包含 4 段来自 loripsum.net 的虚拟 lorem ipsum 文本。

9. 清空你的网站

有一个非常酷的 WP-CLI 命令可以让你清空网站的所有内容(包括文章、评论、术语和元数据),同时保留网站配置和用户。就是这样:

wp site empty

如果你倾向于在大多数测试/实验等场景中使用相同的 开发 WordPress 环境,那么你立刻就会知道这能为你节省多少时间。

虽然你可以通过手动逐个清理内容或使用 phpMyAdmin 来达到同样的效果,但这个 WP-CLI 命令在速度方面是独一无二的。

你还可以执行:

wp site empty --uploads
  • 同时清除"uploads"文件夹中的所有内容。

10. 删除所有垃圾评论

首先,WP-CLI 为管理评论提供了很多可能性。例如,你可以:

  • 使用 wp comment create 创建新评论
  • 使用 wp comment update 更新评论
  • 使用 wp comment approve 审核评论
  • 还有更多功能……

但也许这里你能做的最有趣的事情是一次性清除网站上所有的垃圾评论。如果有一天你醒来发现数据库中有数千条新垃圾评论,这会特别有帮助。

命令是这样的:

wp comment delete $(wp comment list --status=spam --format=ids)

这是一个很巧妙的技巧。主命令 wp comment delete 需要一个参数 —— 要删除的评论的 ID(s)。因此,为了提供 ID(s),我们调用另一个命令 —— wp comment list —— 它会显示所有被标记为垃圾评论的列表。相当酷,不是吗?

11. 驯服 wp-cron

标准的 wp-cron 机制一直不是最可靠的东西。多多少少,当你在 WordPress 中安排一篇文章发布时,你永远无法 100% 确定它确实会准时发布(至少我的经验是这样)。

WP-CLI 可以帮助你稍微驯服一下 cron,使用这个命令

wp cron event run --due-now
  • 立即触发所有到期的 cron 事件。
wp cron

附加技巧:WP-CLI 的两个"元"技巧

尽管 WP-CLI 很棒,但它仍然是一个文本界面,这意味着很难始终记住如何使用这个那个命令。

你可以做两件事来帮助自己:

首先,标准的 help 命令:

wp help COMMAND
  • 显示 WP-CLI 中任何命令的帮助信息。

其次,还有 --prompt 参数,可以与大多数(甚至所有?)WP-CLI 命令一起使用。例如,如果我想生成一些新内容,像这样:

wp post generate --prompt

WP-CLI会列出generate命令的所有可用参数,并让我填写空白(对于可选的项目,我可以按Enter键——在[]括号内的内容)。如下所示:

prompt

返回顶部

结论

WP-CLI将许多通常被认为繁琐的任务变得非常简单,几乎可以轻松处理。您无需花费数小时克服阻碍您解决真正问题的障碍,而是可以使用WP-CLI快速访问WordPress站点中几乎任何您需要的内容。

WP-CLI在许多情况下都能派上用场,上述示例仅仅是个开始,让我们得以一窥一旦真正掌握其功能后WP-CLI的巨大潜力。

您对WP-CLI有任何疑问吗?或者您有自己的小技巧想与我们分享吗?请在下方评论区域告诉我们!

别忘了参加我们的WordPress网站加速速成课程。了解更多如下:

如何加速您的WordPress网站

通过一些简单的修复,您可以减少甚至50-80%的加载时间 🚀

新闻通讯表单 – 侧边栏

名字 *

您的邮箱 *

立即订阅!

如果你是人类,请将此字段留空。

Δ

通过在上方输入您的邮箱,即表示您订阅了我们的每周新闻通讯。您可以随时改变主意。我们尊重您的收件箱和隐私。

分享你的喜爱

留下评论

您的邮箱地址不会被公开。 必填项已用 * 标注