WordPress实现上传文件自动重命名的两种方法

在我们编辑发布文章时,经常会上传一些图片、音频之类的文件。有心的站长会发现WordPress并不会自动为上传的文件重命名,有的站长可能会因为文件量大而不愿意逐个重命名文件。

而后就会导致文件重名、中文文件名乱码之类的错误。

网上关于WordPress上传文件自动重命名的教程也有很多,为了方便大家日后开发主题,路途吧整理推荐两种在上传媒体文件时自动重命名的WordPress教程技巧给大家。

一、按上传时间自动重命名

//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加密生成数字并重命名

//WordPress上传文件重命名
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 文件中即可。