本文最后更新于2024年12月27日22:06 星期五,请注意资讯或者链接时效,如有失效请在文章评论区留言反馈。
写博客时,不希望上传的文件/图片的原始名字直接上传,我们可以通过技术手段使上传的文件自动重命名,随机按规则生成唯一的文件名,也可以防止重复,文件名是中文导致的问题。
代码一
上传文件时会以“年月日时分秒_id”的格式重命名文件,如“20241227210757_676ea6ad9b481.webp"
// 重命名WordPress上传的文件
function rename_uploaded_file($file) {
$time = date("YmdHis");
$unique_id = uniqid(); // 使用uniqid()函数生成唯一标识符
$file_extension = pathinfo($file['name'], PATHINFO_EXTENSION);
$file['name'] = $time . "_" . $unique_id . "." . $file_extension;
return $file;
}
add_filter('wp_handle_upload_prefilter', 'rename_uploaded_file');
代码二
上传文件时会以“年月日时分秒_原始文件名的MD5哈希的前10个字符”的格式重命名文件如“20241227214815_8dc0c37e0d.webp”
// 重命名WordPress上传的文件
function rename_filename($filename) {
$info = pathinfo($filename);
$ext = empty($info['extension']) ? '' : '.' . $info['extension'];
$name = basename($filename, $ext);
$time = date("YmdHis"); // 获取当前时间
return $time . "_" . substr(md5($name), 0, 10) . $ext; // 文件名包含时间和基于原始文件名的MD5哈希的前10个字符
}
add_filter('sanitize_file_name', 'rename_filename', 10);
使用方法
将以上代码加入到主题的functions.php文件中保存即可。
注意事项
以上代码任任选一个,切不可同时使用,修改代码方式,在更新主题后,自己添加的代码,一般是会覆盖的,所以升级主题可以先做好备份。
声明:本文为原创文章,版权归叭叭部落格所有,欢迎分享本文,转载请保留出处!