WordPress 命令行工具(WP-CLI):通过命令行管理你的WordPress

天穹何以高 发布于 14 天前 63 次阅读


引言

在当今数字化时代,WordPress 已成为全球最受欢迎的内容管理系统(CMS)之一,支撑着数百万个网站的运行。无论是个人博客、企业官网,还是电商平台,WordPress 都凭借其灵活性和强大的扩展性赢得了广泛的用户基础。然而,随着网站规模的扩大及功能的复杂化,传统后台管理方式可能变得繁琐低效;新手更可能因错误操作等原因,无法通过常规方式进入后台管理界面进行故障排除。

在这种情况下,WordPress 命令行工具(WP-CLI)应运而生,它不仅提升了管理效率,还在网站故障排除方面展现出显著优势。通过 WP-CLI,用户可以在不登录后台的情况下,快速诊断和解决网站问题。

本文将详细介绍 WP-CLI 的安装与使用方法,帮助你充分利用这一工具,提升 WordPress 网站的管理效率和故障排除能力。

什么是WP-CLI

WP-CLI 是一款用于管理 WordPress 的命令行界面,无需浏览器即可完成插件更新、多站点设置等操作。

WP-CLI 能够实现的常见操作类型丰富多样,主要包括以下几个方面:

  1. 站点管理:创建新的 WordPress 站点、更新站点配置、迁移站点等。例如,通过简单的命令,用户可以快速创建一个全新的 WordPress 站点,并指定数据库信息、站点标题等参数。
  2. 插件管理:安装、更新、激活、禁用和删除插件。WP-CLI 提供了便捷的命令来管理插件,用户可以轻松地搜索并安装所需的插件,或者批量更新所有插件,也可以在无法进入后台的情况下停用发生故障的插件,确保网站功能的稳定性和安全性。
  3. 主题管理:安装、切换、更新和删除主题。通过 WP-CLI,用户可以快速切换网站的主题,或者安装最新的主题版本,为网站带来全新的视觉效果。
  4. 用户管理:创建、更新、删除用户,以及修改用户角色和权限。这使得网站管理员能够更加灵活地管理网站的用户群体,确保网站的安全性和权限控制。
  5. 数据备份与恢复:备份和恢复数据库,确保网站数据的安全性。在数据丢失或损坏的情况下,通过 WP-CLI 可以快速恢复数据库,减少数据损失的风险。
  6. 故障排除:当WordPress出现问题时可进行故障分析与排除,保证你的网站可以正确运行。

WP-CLI 的这些功能不仅提高了操作的效率,还为 WordPress 网站的管理和开发带来了更大的灵活性和便利性。在接下来的章节中,我们将详细介绍 WP-CLI 的安装方法以及如何使用这些功能来管理 WordPress 网站。

安装WP-CLI

安装环境

安装前请检查自己网站的运行环境是否符合如下要求:

  • UNIX 环境:OS X、Linux、FreeBSD、Cygwin 等,部分功能在 Windows 中将受到限制。
  • PHP 版本:PHP 5.6 或更高版本。
  • WordPress 版本:WordPress 3.7 或更高版本,较旧版本在功能上可能会有所减少。

WP-CLI本身需要PHP的支持,并且PHP执行环境最好与WordPress运行时所配置的PHP环境保持一致,因此针对不同的PHP安装情形,我们将介绍对应的安装方法。

PHP安装在主机环境中

此部分内容适用于使用系统包管理器或者源码编译的方式将PHP直接安装到主机系统环境内的用户,你通常可以在主机命令行内直接使用 php 命令。可以通过 php -v 查看你所安装的PHP版本。

user@localhost:~$ php -v
PHP 8.4.2 (cli) (built: Dec 24 2024 06:04:41) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.4.2, Copyright (c) Zend Technologies
    with Zend OPcache v8.4.2, Copyright (c), by Zend Technologies
user@localhost:~$

1. 下载Phar文件

使用以下命令下载Phar文件:

#使用curl下载
curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
#使用wget下载
wget https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar

提示

文件位于Github素材服务器中,如若访问失败,请使用镜像站或使用代理进行访问

2. 验证下载的Phar文件

执行以下命令,应该能返回WP-CLI工具的一些基本信息:

php wp-cli.phar --info

3. 添加执行权限并移动到系统目录中

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

4. 确认安装成功

执行 wp --info 命令,应该有类似于如下输出:

user@localhost:~$ wp --info
OS: Linux 5.15.0-130-generic #140-Ubuntu SMP Wed Dec 18 17:59:53 UTC 2024 x86_64
Shell:  /bin/bash
PHP binary: /usr/bin/php8.4
PHP version:    8.4.2
php.ini used:   /etc/php/8.4/cli/php.ini
MySQL binary:   /usr/bin/mysql
MySQL version:  mysql  Ver 8.0.40-0ubuntu for Linux on x86_64 ((Ubuntu))
SQL modes:  ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
WP-CLI root dir:    phar://wp-cli.phar/vendor/wp-cli/wp-cli
WP-CLI vendor dir:  phar://wp-cli.phar/vendor
WP_CLI phar path:   /home/user
WP-CLI packages dir:
WP-CLI cache dir:   /home/user/.wp-cli/cache
WP-CLI global config:
WP-CLI project config:
WP-CLI version: 2.11.0
user@localhost:~$

PHP位于容器环境中(Docker)

1. 进入容器shell

我们需要进入对应容器的shell环境中执行操作:

docker exec -it <容器名称或ID> /bin/sh

1Panel用户可以按下图操作连接至容器终端

1736938000 1Pdocker
1736938011 Dockerterm

2. 下载与验证Phar文件

#使用curl下载
curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
#使用wget下载
wget https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
#验证Phar文件
php wp-cli.phar --info

3. 添加执行权限

chmod +x wp-cli.phar
mv wp-cli.phar wp

本例中文件被放置在容器中的 /root/ 内,之后都将通过 /root/wp 访问命令,如果你自定义了安装位置,请自行替换。

WP-CLI的基本使用

WP-CLI 的目标是为网站管理员提供完整的替代方案,因此你可能想在 WordPress 管理后台中执行的任何操作,几乎都有等效的 WP-CLI 命令。由于篇幅限制,本文将重点介绍使用WP-CLI进行主题与插件的管理,如果你需要更多命令的说明,请参考官方文档(https://make.wordpress.org/cli/handbook

用前注意

WP-CLI将基于终端当前的工作目录展开工作,因此正式操作前请先把终端的工作目录更改为网站的根目录,你可以参考如下命令,具体路径以你服务器实际情况为准。

#使用主机环境直接建站的路径多为:
cd /var/www/html/
#使用1Panel内的PHP容器环境建站的多为:
cd /www/sites/example.com/index/
#使用宝塔建站的多为:
cd /wwwroot/example.com/

如果你的PHP直接安装在主机环境中,官方建议使用www-data的身份执行WP-CLI(你的PHP与Nginx或其他Web服务应该都以www-data的身份执行),因此切换到站点目录下后,接下来你可以用 sudo -u www-data wp <command> 来以www-data的身份执行WP-CLI命令。

如果你PHP运行在容器中,使用上一节的教程配置好后,你需要用绝对路径调用WP-CLI且应该加上 --allow-root 的参数,默认情况下不允许root直接调用WP-CLI。你的调用将类似于 /root/wp --allow-root <command>

为了节约篇幅,下文将直接使用 wp <command> 指代命令调用,请自行替换为适合自己的命令调用。

(一)站点管理

1. 创建新站点

通过 WP-CLI,可以快速创建新的 WordPress 站点。以下是一个示例命令,用于创建一个新站点并指定数据库信息和站点标题:

wp core install --url=example.com --title="My New Site" --admin_user=admin --admin_password=password --admin_email=admin@example.com

2. 更新站点

使用以下命令可以更新 WordPress 核心:

wp core update

(二)插件管理

1. 安装插件

安装插件非常简单。以下命令用于安装插件:

wp plugin install plugin-name

如果不清楚要安装的插件的具体名称,可以从WordPress官网上获得,例如 经典编辑器 的官方页面为 https://wordpress.org/plugins/classic-editor/ ,那么安装是应用的名称就是 classic-editor

也可以使用WP-CLI搜索插件:

wp plugin search classic
1736946105 Pluginsearch

使用第二列 slug 中的名称安装你想要的插件。

当然也可以可以使用URL安装自定义插件:

wp plugin install http://example.com/extension_file.zip

2. 更新插件

更新插件可以确保插件的最新功能和安全补丁。以下命令用于更新插件:

#更新指定插件
wp plugin update plugin-name
#更新所有插件
wp plugin update --all

3. 管理插件

以下命令可以帮助你管理已安装的插件:

命令说明
wp plugin list列出已安装插件
wp plugin install <插件名>安装指定插件
wp plugin search <关键字>搜索插件
wp plugin activate <插件名>启用指定插件
wp plugin update <插件名>升级指定插件
wp plugin deactivate <插件名>禁用指定插件
wp plugin uninstall <插件名>卸载指定插件

(三)主题管理

1. 安装主题

与插件管理类似,参考如下表格

命令说明
wp theme list列出已安装主题
wp theme install <插件名>安装指定主题
wp theme search <关键字>搜索主题
wp theme activate <插件名>启用指定主题
wp theme update <插件名>升级指定主题
wp theme status <插件名>获取指定主题信息
wp theme delete <插件名>卸载指定主题

(四)用户管理

1. 创建用户

创建新用户可以为网站添加新的作者或管理员。以下命令用于创建一个新用户:

wp user create john.doe john.doe@example.com --role=author --user_pass=password

2. 更新用户信息

更新用户信息可以修改用户的用户名、邮箱或密码。以下命令用于更新用户的邮箱:

wp user update 1 --user_email=new.email@example.com

3. 管理用户

你还可能用到下面的命令:

#列出所有用户
wp user list
#删除一个用户
wp user delete user-name

(五)数据备份与恢复

1. 备份数据库

备份数据库是确保网站数据安全的重要步骤。以下命令用于备份数据库:

wp db export backup.sql

2. 恢复数据库

在数据丢失或损坏的情况下,可以使用备份文件恢复数据库。以下命令用于从备份文件恢复数据库:

wp db import backup.sql

通过以上常见操作,你可以快速上手 WP-CLI,提升 WordPress 网站的管理效率和故障排除能力。

(六)故障排除

1. 维护模式

查看维护模式状态

    $ wp maintenance-mode status
    Maintenance mode is not active.

启用维护模式

    $ wp maintenance-mode activate
    Enabling Maintenance mode...
    Success: Activated Maintenance mode.

禁用维护模式

    $ wp maintenance-mode deactivate
    Disabling Maintenance mode...
    Success: Deactivated Maintenance mode.

2. 确定插件与主题冲突

新手最容易出现的故障就是插件与主题的冲突,并且有时候还可能导致你无法进入后台,这时候就可以用WP-CLI进行故障分析与排除。

1. 跳过插件和主题执行WP-CLI

首先,尝试在不加载任何插件或主题的情况下运行WP-CLI命令。这可以通过 --skip-plugins--skip-themes 参数来实现。如果在这种情况下WP-CLI能够正常运行,则说明问题是由于某个插件或当前激活的主题引起的。

wp --skip-plugins --skip-themes

如果上述命令成功执行,那么问题确实是由插件或主题导致的。

2. 检查是否是活动主题引起的问题

接下来,可以单独跳过主题来测试WP-CLI是否能正常加载。这样可以帮助确定问题是否来源于当前使用的主题。

wp --skip-themes

如果这个命令也成功了,那么我们可以排除主题的问题,将焦点转向插件。

3. 检查是否是某个活动插件引起的问题

最后,逐一排查每个活动插件以找出哪个插件阻止了WP-CLI的完整执行。一种方法是手动为每个活动插件添加 --skip-plugins=<plugin-name> 参数并依次测试;另一种更高效的方法是使用 xargs 命令来自动化这个过程。

例如,要跳过Akismet插件,你可以这样做:

wp --skip-plugins=akismet

对于所有活动插件,可以使用以下命令一次性测试所有插件:

wp plugin list --field=name --status=active --skip-plugins | xargs -n1 -I % sh -c 'echo "Testing: %"; wp --skip-plugins=% plugin get % --field=name'

这条命令的作用是列出所有处于活动状态的插件名称,并对每个插件执行带有 --skip-plugins 参数的WP-CLI命令。它会输出正在测试的插件名以及该插件的信息(如果命令成功)。如果某个插件引起了问题,对应的命令将会失败或者表现出异常行为。

通过这种方法,您可以有效地识别出哪个插件或主题与WP-CLI存在兼容性问题,并采取适当的措施解决这个问题,比如更新插件、切换到不同的主题,或是联系插件/主题开发者获取帮助。

WP-CLI更多操作

你也可以为WP-CLI注册自己的命令,但这不在本文介绍范围,请移步官方文档

WebP 是一种由Google开发的图像格式,旨在提供更高效的图像压缩。它支持有损和无损压缩,并且可以显著减小文件大小,同时保持高质量的图像效果。

如果我们在建站初期上传了很多图片,那么要将他们全部手动转换成WebP是个很麻烦的过程,因此我们可以借助 Plus WebP or AVIF 插件(插件页面)来帮助我们转换。该插件的后台界面非常简单易用,但对于大量的图片处理,官方也推荐我们使用WP-CLI进行处理。

#安装 Plus WebP or AVIF 插件
wp plugin install plus-webp
#批量转换图片为WebP格式并将所有文章中的图片替换为新链接
wp pluswebpavif webp --quality=100 --replace=true --types=image/png,image/bmp,image/jpeg
##具体参数参考官方帮助文档

结语

通过本文的介绍,我们详细探讨了 WordPress 命令行工具(WP-CLI)的安装与使用方法。从安装前提到具体的操作步骤,再到常见操作的示例,我们希望为你提供了一个全面的指南,帮助你更好地管理和维护 WordPress 网站。
WP-CLI 作为一个强大的工具,不仅能够提升日常管理的效率,还能在网站故障排除时发挥关键作用。通过命令行界面,你可以快速执行各种操作,无需登录后台,大大节省了时间和精力。
在使用 WP-CLI 时,务必注意备份数据、管理权限、确保环境兼容性,并在正确的站点目录中执行命令。这些注意事项将帮助你避免常见的错误,确保操作的顺利进行。
如果你希望进一步学习和探索 WP-CLI 的更多功能,可以参考官方文档,或者与其他开发者和管理员交流经验。通过不断学习和实践,你将能够充分利用 WP-CLI 的强大功能,提升你的 WordPress 网站管理技能。
希望本文对你有所帮助,祝你在 WordPress 网站管理的道路上越走越远!

除非注明,否则均为天远日记原创文章,转载必须以链接形式标明本文链接

本文链接:https://www.tqhyg.net/post379.html