WordPress 自动重命名上传文件名

wordpress是可支持文件中文的,可是在有时候在为了一些特殊功能时候,需要文件或者图片为非英文的,如果是文件很多,那一个一个的修改起来那不是很累吗,直接为所有上传图片重新命名为非中文的,可以提高图片资源的链接可读性和兼容性,比手动更改文件效果更高。

使用wordpress的人可能都知道,wordpress是可支持文件中文的,可是在有时候在为了一些特殊功能时候,需要文件或者图片为非英文的,如果是文件很多,那一个一个的修改起来那不是很累吗,直接为所有上传图片重新命名为非中文的,可以提高图片资源的链接可读性和兼容性,比手动更改文件效果更高。

将以下代码添加到所使用主题的functions.php 文件中追加即可,部分主题会建议放在特定的文件中以主题建议为主。

根据上传的时间命名

举例说明

如2023052910202888.png,表示2023年05月29日10时20分28秒上传的,最后两位数字88是10到99之间的随机数,png表示文件类型后缀。

实现方法

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);//为了避免时间重复,再加一段2位的随机数
    $file['name'] = $filedate.'.'.$ext;
    return $file;
}

文件名md5转码为32位字符串

举例说明

如 4ce35559add1606a8ecfc3f9b963c6f6.png,原始文件名为creplus.png。

实现方法

add_filter('wp_handle_upload_prefilter', 'custom_upload_filter' );
function custom_upload_filter( $file ){
    $info = pathinfo($file['name']);
    $ext = '.' . $info['extension'];
    $md5 = md5($file['name']);
    $file['name'] = $md5.$ext;
    return $file;
}

小结

以上两种方法实现WordPress上传图片自动重命名的方法只能二选一,不可同时使用两种方法,要不然出错的话后果自负哦。本文的两种方法都能成功实现,换句话说有了这两种方法之后,以后我们上传图片的时候再也不用担心图片文件名是中文或其他不合格的名称了,可以放心大胆地上传图片了。

留下评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注