WordPress上传图片自动重命名无需插件

说在前面

1、这两天在发布文章的时候突然发现好多图片名字都是各自不同,每一个名字都不一样,看得就让人很心烦,所以我特地去网上搜集了一下如何在WordPress上传图片自动重命名。
2、刚好找到了一个不错的方法,立马转来先分享给大家了再说。这个功能以后还是会用到的。虽然我博客不用,因为我有不用中文名称图片的好习惯,我都是自己命名的。
3、同时这个方法也很好的避免之前有同名称图片再上传会覆盖的问题。毕竟图片上传后自动重命名。

方法一【按时间重命名】

上传文件时会以年月日时分秒+千位毫秒整数的格式重命名文件,如2022092102581286.webp。如下图

//wordpress 上传文件图片按时间重命名重命名
function git_upload_filter($file) {
    $time = date("YmdHis");
    $file['name'] = $time . "" . mt_rand(1, 100) . "." . pathinfo($file['name'], PATHINFO_EXTENSION);
    return $file;
}
add_filter('wp_handle_upload_prefilter', 'git_upload_filter');

方法二【用 MD5 加密生成数字并重命名】

名称规则是由系统自动生成的一个 32 位的 MD5 加密文件名,由于默认生成的 32 位文件名有点长,所以使用substr(md5($name),0,20)截断将其设置为 20 位。

//wordpress 上传文件图片 MD5 加密重命名
function rename_filename($filename) {
    $info = pathinfo($filename);
    $ext = emptyempty($info['extension']) ? '' : '.' . $info['extension'];
    $name = basename($filename, $ext);
    return substr(md5($name), 0, 20) . $ext;
}
add_filter('sanitize_file_name', 'rename_filename', 10);

使用操作教程

在主题目录下functions.php文件里面最下面,然后下面的代码复制进去即可。