醒游网

当前位置: 首页 » 网站日记 » 如何解决 WordPress 图片上传时的重命名和压缩尺寸问题?

如何解决 WordPress 图片上传时的重命名和压缩尺寸问题?

前段时间,在解决一则网站图片上传失败引起CDN加速503错误的故障时,发现和媒体库中图片尺寸过大,打开加载时间过长有关。

而且由于是多用户模式的,许多新的投稿用户在添加图片时,有两个问题非常突出,一是图片的文件名是中文,上传下载或迁移过程中,会造成乱码而产生错误;二是图片上传时没有经过压缩,尺寸过大,有些竟然有6M,不仅占用空间,还影响了打开速度。

对于第一个问题,我的思路是在 WordPress 上传图片时,系统自动给予重命名,根据上传时间命名,用数字代替中文,以实现能正常显示使用。

举例说明:如2019022012282866.xxx,表示2019年2月20日12时28分28秒上传的,最后两位数字66是10到99之间的随机数,xxx表示文件原本的类型后缀。

实现方法:将以下代码添加到所使用主题的 functions.php 文件中最后一个?>的前面即可。

//wordpress上传文件重命名
add_filter('wp_handle_upload_prefilter', 'custom_upload_filter' );
function custom_upload_filter( $file ){
    $info = pathinfo($file['name']);
    $ext = $info['extension'];
    $filedate = date('YmdHis').rand(10,99);
    $file['name'] = $filedate.'.'.$ext;
    return $file;
}

具体的效果见下图,此方法采自苏醒博客,他还提供了一种“文件名md5转码为32位字符串”的重命名方式,我觉得不直观,还是根据上传时间命名好。

对于第二个问题,目前有两个思路,一是图片上传前先进行压缩,减小图片尺寸,网站上展示的图片,最大像素建议不超过1024×768,通常800×600足够了;二是图片上传后进行压缩,用小尺寸图片替代原来的大尺寸图片,这就需要图片具有这个功能。

看到网上推荐使用 Compress JPEG & PNG images 插件来自动完成图片压缩工作,以优化图片加载速度。

在网站后台通过搜索 Compress JPEG & PNG images 添加插件,或在 WordPress 官网上下载安装,启用后的设置也比较简单,可参照下图:1、新图片上传:在后台压缩新图像(推荐);2、图片尺寸:原始图像(由压缩图像覆盖);3、原始图片:调整原始图像的大小为最大宽度800×最大高度600。

Compress JPEG & PNG images  插件由 TinyPNG 发布,它每个月可免费压缩500张图片,你可在后台看到使用的次数。

TinyPNG 还提供了在线压缩工具 https://tinypng.com/ ,压缩比例大,质量损伤小,推荐大家使用。当插件后台压缩免费次数用完的时候,这是个最佳的选择。

猜你喜欢
用户评论
  1. 学习了,继续加油哦!

  2. 很个性的主题哈,wp还是很强大的

    • WordPress 最大的优势是使用简单,而且主题、插件丰富,只有你想不到,没有人做不到的,它已经从单纯的博客程序发展为适合建造各种类型的网站的优秀程序。

要发表评论,您必须先登录/注册
本类排行