WordPress优选将提供三种不同的方法,帮助你在WordPress中实现图片自动重命名。三种方法都附上了相应PHP代码片段,选择最适合你需求的一种添加代码即可。
请注意,在functions.php文件中添加代码时,确保将其放置在?>
之前,添加代码后检查是否产生了任何语法错误或冲突。
方法一:使用随机数字重命名
这种方法将使用随机生成的数字来重命名上传的图片,确保名称的唯一性。
具体实现:
function rename_upload_img($file) {
$time=date("Y-m-d H:i:s");
$file['name'] = $time."".mt_rand(100,999).".".pathinfo($file['name'] , PATHINFO_EXTENSION);
return $file;
}
add_filter('wp_handle_upload_prefilter', 'rename_upload_img');
方法二:基于上传时间重命名
此方法利用图片上传的具体时间加上一个随机数后缀来创建唯一的文件名。
具体实现:
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位字符串
此方法通过计算原始文件名的MD5哈希值来生成新的文件名,这种方法几乎可以保证文件名的唯一性。
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;
}
请注意,只需要选择一种方法实施即可,因为同时使用多种方法可能会产生冲突。