此前为了保证图片浏览质量和节省磁盘空间,我几乎关闭了 WordPress 所有缩略图的输出,以前更新少流量低,也没觉得这么干有啥问题。近来博客更新比较频繁,流量也越来越高,一查发现这个博客消耗的宽带竟然比另一个主站还高(访问量远不及另一个),都是媒体文件尺寸过大惹的祸…!
有《WordPress 有哪些不同尺寸的缩略图,如何完全禁用&批量删除》一文详细介绍了咱 WordPress 都有哪些缩略图并如何处理它们。WordPress 默认的缩略有如下几个:
缩略图名称 | 图像尺寸 |
---|---|
缩略图( Thumbnail ) | (大小取决于媒体设置。默认为 150 像素) |
中等大小( Medium ) | (大小取决于媒体设置。默认为 300 像素) |
大尺寸( Large ) | (大小取决于媒体设置。默认为 1024 像素) |
中大尺寸( Medium Large ) | 768 像素 |
2x 中大尺寸( 2x Medium Large ) | 1536 像素 |
2x 大尺寸( 2x Large ) | 2048 像素 |
缩放( Scaled ) | 2560 像素 |
上表中前三个缩略图可以在仪表盘-设置-媒体设置中将媒体宽度和高度全部设为0
关闭,其余的包括主题生成的缩略图则需要使用特定代码移除,详细见上述那篇文章。我也是近段时间在发现,WordPress 后台编辑器的媒体库加载的是上表中“Medium”缩略图,本博此前没用使用该缩略图,于是每次插入图片或者设置特色图片打开媒体库时,浏览器都会加载 80 张(默认数值)全尺寸的图像,会导致系统非常卡顿。因此,这个缩略图必须保留,且设置一个合理的尺寸。
设置好之后必须给 WordPress 生成该缩略图,否则打开媒体库加载以前的图像时仍然使用的是全尺寸文件。于是我试用Regenerate Thumbnails
插件重新生成缩略图,不晓得是系统权限问题还是咋地,该插件无法正常工作。赫然发现插件主页上有这么句话:If you have command line access to your server, I highly recommend using WP-CLI instead of this plugin as it’s faster (no HTTP requests overhead) and can be run inside of a screen for those with many thumbnails. For details, see the documentation of its media regenerate command.官方都推荐用 WP-CLI,那还等什么?于是就有了本篇文章。
1. 什么是 WP-CLI(WordPress Command Line Interface)
WP-CLI 是 WordPress 的命令行界面工具,旨在通过命令行来简化和加速对 WordPress 网站的管理和操作。它允许用户执行诸如安装和更新 WordPress 核心、插件和主题,管理用户、执行数据库备份和迁移,以及生成静态内容等任务,而无需通过浏览器的图形用户界面(GUI)。WP-CLI 适用于开发者和系统管理员,希望通过脚本和自动化来提高工作效率,使得批量操作和复杂任务更加容易执行。
2. 在服务器上安装 WP-CLI
2.1 下载安装 WP-CLI
WP-CLI 是一个强大的工具,能大大简化 WordPress 站点的管理和维护。对于熟悉命令行的用户来说,使用 WP-CLI 可以显著提高工作效率。安装 WP-CLI 非常简单,可以通过以下步骤进行:
- 下载 WP-CLI: 在命令行中运行以下命令下载 WP-CLI 的 Phar 文件:
curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
,如果你服务器“网不好”,也可以离线下载后通过 Ftp 手动上传; - 验证下载: 确保下载的文件是可执行的:
wp-cli.phar --info
- 将 WP-CLI 移动到全局可访问的位置: 将
wp-cli.phar
移动到/usr/local/bin/wp
,并赋予可执行权限:chmod +x wp-cli.phar
mv wp-cli.phar /usr/local/bin/wp
- 验证安装: 运行以下命令验证 WP-CLI 是否安装成功:
wp --info
/usr/local/bin/
是一个在类 Unix 操作系统(如 Linux 和 macOS)中常见的目录,用来存放用户安装的二进制可执行文件。将wp-cli.phar
放在该目录后,以后可以通过在终端中输入wp
来直接使用 WP-CLI。
2.2 使用 WP-CLI 的注意事项
- 备份:在进行重大操作(如数据库修改、核心更新等)之前,确保已备份站点数据。
- 权限:确保你在执行命令时拥有足够的权限,特别是在修改文件系统和数据库时。
- 环境:在本地开发环境中测试命令,确保不会对生产环境造成意外影响。
2.3 常见问题
- 命令找不到: 如果出现
wp: command not found
错误,确保wp
命令所在路径已添加到系统的环境变量中。 - 权限问题: 如果遇到权限问题,可以使用
sudo
命令来提升权限,但要谨慎使用。另外操作前也请暂时关闭其他防护程序,比如宝塔的“系统加固”插件。 - 其他问题:如果出现了 JLT 警告,如
Warning: JIT is incompatible with third party extensions that setup user opcode handlers.
可以不用理会,毕竟咱偶尔用着玩意儿。
3. 使用 WP-CLI 给 WordPress 生成缩略图
使用 WP-CLI 重新生成 WordPress 网站中的缩略图,可以通过 wp media regenerate
命令来完成。这个命令会重新生成所有的媒体文件的缩略图,以确保所有图像尺寸都符合当前主题和插件的要求。以下是使用 WP-CLI 重新生成缩略图的步骤:
3.1 备份网站
在进行任何批量操作之前,最好备份你的网站,包括数据库和所有文件。这可以确保如果在操作过程中出现问题,你可以恢复到之前的状态。
3.2 进入 WordPress 安装目录
使用命令行进入你的 WordPress 安装目录,以下以装在宝塔面板的 Kevin's Space 为例,您各位做个参考:cd /www/wwwroot/shephe.com
,WP 安装目录指的是装着 wp-admin、wp-includes 等文件夹那个目录。
3.3 重新生成缩略图(wp media regenerate)
- 这条命令重新生成所有媒体文件的缩略图:
wp media regenerate
- 如果你只想重新生成特定媒体文件的缩略图,可以使用文件 ID:
wp media regenerate 123 456 789
,这通常用来测试 - 这个命令会自动确认、保留旧尺寸、仅重新生成缺失的
thumbnail
和medium
尺寸的图片:wp media regenerate --yes --skip-delete --only-missing --image_size=thumbnail --image_size=medium
值得注意的是,这个工作会消耗大量的服务器资源,请保持理性和耐心,最好是在服务器空闲时操作。另外,请一定执行上边第 2 行先行测试一番再全量操作。Kevin 自己全程使用 root 用户执行命令(--allow-root),使得生成的缩略图的所有权变成了 root 用户,暂时还不清楚对使用有何影响,我感觉最好是把 wp-content 目录更改为原来的权限为好。
4. WP-CLI 的其他功能
WP-CLI 是一个强大的命令行工具,专门用于管理 WordPress 安装。它提供了许多功能来简化和自动化各种常见的 WordPress 任务。以下是一些主要功能:
- 核心管理:
- 安装和更新 WordPress 核心文件。
- 检查和升级到最新版本或特定版本的 WordPress。
- 下载特定版本的 WordPress。
- 插件管理:
- 安装、激活、停用和删除插件。
- 更新单个或所有插件。
- 列出已安装的插件及其状态。
- 主题管理:
- 安装、激活和删除主题。
- 更新主题。
- 列出已安装的主题。
- 数据库操作:
- 创建、备份和还原数据库。
- 执行数据库优化和修复。
- 运行自定义 SQL 查询。
- 用户管理:
- 创建、更新和删除用户。
- 更改用户角色和权限。
- 重置用户密码。
- 内容管理:
- 创建、更新和删除文章、页面和自定义文章类型。
- 批量生成测试内容。
- 导出和导入内容。
- 设置和配置:
- 查看和更新 WordPress 配置选项。
- 管理永久链接结构。
- 管理小工具和菜单。
- 媒体管理:
- 批量上传、删除和重新生成媒体文件。
- 查看媒体文件信息。
- 多站点管理:
- 安装和管理多站点网络。
- 管理多站点网络中的子站点。
- 缓存管理:
- 清除缓存(如果使用缓存插件)。
- 翻译管理:
- 安装和更新翻译文件。
- 配置和调试:
- 管理和调试 WP-CLI 配置文件。
- 查看和设置常见的调试模式。
- 导入和导出:
- 使用 WordPress 导入器导入内容。
- 导出 WordPress 内容。
- 生成静态内容:
- 生成静态网站(需要相关插件支持)。
- 命令扩展:
- WP-CLI 允许通过自定义命令进行扩展,开发者可以编写和添加自己的命令。
- 运行自定义代码:
- 通过命令行运行自定义 PHP 代码片段。
这些功能使 WP-CLI 成为一个非常灵活和强大的工具,适用于开发、部署和维护多个 WordPress 站点。通过 WP-CLI,用户可以高效地批量执行各种任务,从而节省大量时间和精力。
5. 设置文章插入的图片默认尺寸为原图
Kevin's Space 之前完全禁止了缩略图( Thumbnail )、中等大小( Medium )、大尺寸( Large )
缩略图,因此编辑文章插入图片时默认插入原始图像,即全尺寸(Full)
。现在开启这些缩略图时,据我观察当原始图像大于咱设置的大尺寸图象时,WordPress 默认使用该缩略图。
为了保证网页图像浏览质量和正确显示 EXIF 信息,我每次都要手动在图片-区块-分辨率中更改为全尺寸,相当不爽…以下代码实现将文章插入的图片默认尺寸为原图。
// 编辑文章插入图片时默认为“全尺寸”
function set_default_image_size() {
update_option('image_default_size', 'full');
}
add_action('after_setup_theme', 'set_default_image_size');
6. 更改 WordPress 后台媒体库加载的缩略图
有了这个操作,是不是感觉前面所有的工作都白干了?我也是快写完本文的时候才想到…不说了,就当瞎折腾了吧……emmmmm,不过我怎么折腾,在文章编辑器插入图片和设置特色图像时弹出的模态窗口中,加载的缩略图始终为Medium
,无法被改成Thumbnail
,所以也不算瞎折腾…吧?以下代码仅作用于仪表盘-设置-媒体库
:
// 设置后台“媒体库”加载的缩略图为 thumbnail
function custom_media_library_thumbnail_size() {
// This filter changes the size of the thumbnail in the media library
add_filter('admin_post_thumbnail_size', function() {
return 'thumbnail'; // Change to your desired size (e.g., 'thumbnail', 'medium', 'large', etc.)
});
}
add_action('after_setup_theme', 'custom_media_library_thumbnail_size');
這個插件多數是用在主題改了圖片比例的時候,就要重新生成。
但是像我blog 已經幾個G的圖片了就隨意了,歷史包袱太重,不要隨意動他,哈哈哈。