WordPress实现自动重命名上传图片的方法有三种

2023-11-07 0 1,046

正文:

有些主机空间对中文名称的支持不够,这会导致在 WordPress 网站后台上传中文名的图片或文件时出现问题。为了避免这种情况,可以采取以下三种方法,无需使用插件,只需修改代码即可。

WordPress实现自动重命名上传图片的方法有三种

以下有三种方法可以实现:

方法一:文件 md5 转码成 15 为字符串

 // WordPress 上传图片或文件自动重命名的方法
// 
add_filter('sanitize_file_name', 'tbwp_new_filename', 10);
function tbwp_new_filename($filename) {
$info = pathinfo($filename);
$ext = empty($info['extension']) ? '' : '.' . $info['extension'];
$name = basename($filename, $ext);
return substr(md5($name), 0, 15) . $ext;
}  
对应效果文件名:b21ca2cfeb914f.png

方法二:文件名 md5 转码为 32 位字符串

 // WordPress 技巧:上传图片自动重命名的几种办法
// 
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;
}  
对应效果文件名:d131dd02c5e6eec4.png

方法三:以上传的时间命名

 // WordPress 技巧:上传图片自动重命名的几种办法
// https://www.suxing.me/wp-courses/941.html
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;
}  
这里提供一个自动生成的文件名示例:

2023030114254378.png

文件名的组成要点如下:

开头为当前日期(年月日):20230301
中间为当前时间(时分秒):142543
末尾加上 2 位随机数:78
最后是文件扩展名:.png

这样可以生成一个包含时间信息的唯一文件名。每次生成文件名时,当前时间和随机数都会不同,因此文件名不会重复。

这个文件名生成逻辑可以应用在需要自动命名上传文件的场景中,比如在 WordPress 或其他系统中处理用户上传的文件。

本文章已结束,如转载请注明:汇站网 » WordPress 实现自动重命名上传图片的方法有三种

收藏 (0)

微信支付 微信扫一扫

支付宝支付 支付宝扫一扫

打赏二维码
点赞 (0)

站长资源下载中心-找源码上汇站

常见问题
  • 如果付款后没有弹出下载页面,多刷新几下,有问题联系客服!
查看详情
  • 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。
查看详情

相关文章

联系官方客服

为您解决烦忧 - 24小时在线 专业服务