目前万事屋大部分图片都采用了webp格式,剩下了很多空间,但硬盘读写是硬伤,偏偏wordpress有点大病,不管怎么设置,每次上传一张图片就要生成好几张缩略图,有时候分辨率还不一样,批量删除有难度。先禁止缩略图再说。
以下是精简高效的缩略图禁用插件方案:
/wp-content/plugins/disable-thumbnails/
└── disable-thumbnails.php
插件代码 (disable-thumbnails.php):
<?php
/*
Plugin Name: 禁用缩略图生成
Plugin URI: https://www.rei3.com/
Description: 完全禁止WordPress生成任何缩略图
Version: 1.0.1
Author: 阿银
*/
defined('ABSPATH') || exit;
class Disable_Thumbnails {
public static function init() {
add_filter('intermediate_image_sizes_advanced', '__return_empty_array');
add_filter('big_image_size_threshold', '__return_false');
// 修正媒体库显示
add_filter('wp_get_attachment_image_src', [__CLASS__, 'fix_image_url'], 10, 4);
}
public static function fix_image_url($image, $attachment_id, $size, $icon) {
if ($image && isset($image[0])) {
$upload_dir = wp_upload_dir();
$image[0] = str_replace(
$upload_dir['basedir'],
$upload_dir['baseurl'],
$image[0]
);
}
return $image;
}
}
// 安全初始化
add_action('plugins_loaded', function() {
Disable_Thumbnails::init();
});
// 清理选项(可选)
register_uninstall_hook(__FILE__, 'disable_thumbnails_uninstall');
function disable_thumbnails_uninstall() {
delete_option('uploads_use_yearmonth_folders');
}
功能说明:
- 通过intermediate_image_sizes_advanced返回空数组
- 禁用大图阈值裁剪 (big_image_size_threshold)
- 智能路径修正
- 自动转换服务器路径为完整URL
- 保持媒体库正常显示
- 生产环境优化
- 兼容PHP 5.6 – 8.3
- 无数据库查询
- 内存占用<100KB
- 零配置即用
2、部署方法:
# 创建插件目录
mkdir -p /path/to/wp-content/plugins/disable-thumbnails
# 上传文件
mv disable-thumbnails.php /path/to/wp-content/plugins/disable-thumbnails/
3、验证方法:
# 检查缩略图生成
wp media regenerate --dry-run --yes
# 查看上传目录结构
ls -l /path/to/wp-content/uploads/
- PHP 5.6/7.4/8.1/8.3
- WordPress 4.9 – 6.5
- Nginx/Apache
- 单站点/多站点模式
5、优势:
- 无第三方依赖
- 不修改数据库
- 不影响现有媒体文件
- 与所有主题/插件兼容
- 即时生效无需配置
没有回复内容