使用WP-CLI重新生成WordPress丢失的缩略图

发布于:2020-11-19 最后编辑:2020-11-19 所属分类:运维 阅读次数:1525

网站从阿里云迁移到腾讯云以后,出现了很多图片无法访问的问题。查找原因以后发现,是对象存储插件造成的,以前在阿里云使用的OSS插件,在设置中禁用了缩略图功能,而迁移到腾讯云以后,更换为COS插件,没有这个功能。这就造成了缩略图不存在的问题。本来打算用Regenerate Thumbnails插件来重新生成缩略图,可以站点图片太多了,用插件生成太慢,所以决定还是用WP-CLI来处理。

什么是WP-CLI

WP-CLI是WordPress官方开发的一套命令行下的工具。因为是在命令行下操作,省去了http请求,可以节省大量时间,也能尽量避免执行超时的情况出现。处理缩略图仅仅是其下的一个子功能而已,有兴趣的话,可以去WP-CLI官网查看更多信息。

WP-CLI

安装WP-CLI

在安装 WP-CLI 之前,请确保您的操作环境满足最低要求:

  • UNIX 环境(OS X,Linux,FreeBSD,Cygwin),某些功能在 Windows 中将受到限制。
  • PHP 5.4 或更高版本。
  • WordPress 3.7 或更高版本,较旧版本在功能上可能会有所减少。

使用SSH登陆服务器,执行下面的命令进行下载。

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

如果提示无法下载,是因为被墙的原因,你可以本地下载wp-cli.phar,然后用SFTP或宝塔之类的管理面板上传到服务器。本地也无法下载的话,自己想想办法哈。实在不行,可以复制下载地址到迅雷,一般是可以下载下来的。

现在回到命令行或终端界面,执行下面的命令,检查下载的文件是否OK。如果你是下载到本地又上传到服务器的,请注意路径哦。

php wp-cli.phar --info

执行正常的话,说明下载的文件是OK的,下面要给它赋予执行权限并把它注册为环境变量。使用下面的命令:

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

如果 WP-CLI 安装成功,使用 wp –info 命令,将看到类似以下输出信息:

$ wp --info
OS: Darwin 16.7.0 Darwin Kernel Version 16.7.0: Thu Jan 11 22:59:40 PST 2018; root:xnu-3789.73.8~1/RELEASE_X86_64 x86_64
Shell:  /bin/zsh
PHP binary:    /usr/local/bin/php
PHP version:    7.0.22
php.ini used:   /etc/local/etc/php/7.0/php.ini
WP-CLI root dir:        /home/wp-cli/.wp-cli/vendor/wp-cli/wp-cli
WP-CLI vendor dir:      /home/wp-cli/.wp-cli/vendor
WP-CLI packages dir:    /home/wp-cli/.wp-cli/packages/
WP-CLI global config:   /home/wp-cli/.wp-cli/config.yml
WP-CLI project config:
WP-CLI version: 2.4.0

更新 WP-CLI

如果需要更新 WP-CLI ,可以运行 wp cli update 或者重复上述安装方法。

如果 WP-CLI 的所有者是 root 或其他系统管理员,则需要执行 sudo wp cli update 操作。

使用 WP-CLI 生成丢失的缩略图

开始操作之前,请务必备份网站数据和数据库!以免造成不可挽回的损失。

首先在终端中cd到网站根目录,然后执行下面的命令即可:

wp media regenerate --yes --only-missing --allow-root

上面的命令仅生成不存在的缩略图,如果存在,则跳过。如果需要其他方式,请参考官方文档。

如果发现生成速度很慢,请暂时停用OSS或COS之类的插件。如果发现有的主图丢失了,请查看OSS或COS中是否存在这个主图,有的话,就下载到服务器上对应路径中。如果丢失的主图很多,并且OSS或COS中存在这些主图,你可以用OSS或COS客户端下载全部文件,然后用FTP上传到服务器上。

标签: