WordPress上传图片或文件自动重命名

  • 2025-01-14
  • 阅读:19

WordPress 上传文件默认是不会自动重命名的,这样就会遇到当文件名包含中文或特殊字符时有可能会产生乱码或其他各种问题。

第一种方法,根据上传日期时间值重命名文件

//根据上传日期时间值重命名文件(增强改进版)
add_filter('wp_handle_upload_prefilter', 'custom_upload_filter' );
function custom_upload_filter( $file ){
	$info = pathinfo($file['name']);
	$ext = $info['extension'];
	$tzs = get_option('timezone_string'); 
	$tzobj = timezone_open($tzs); 
	$now = date_create('now',$tzobj ); 
    $filedate = date_format($now, 'YmdHis').mt_rand(100,999);
	$file['name'] = $filedate.'.'.$ext;
    return $file;
}

第二种方法,根据上传文件md5值重命名文件

//根据上传文件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;
}

部分评论