wordpress附件上传重命名

把代码放入主题 functions.php 文件即可:

//使用md5对附件重命名
add_filter('wp_handle_upload_prefilter', 'custom_upload_filter' );
function custom_upload_filter( $file ){
    $info = pathinfo($file['name']);
    $ext = '.' . $info['extension'];
    $filedate = md5($file['name']);
    $file['name'] = $filedate.$ext;
    return $file;
}

以上代码是把上传的附件原名称转化为md5.

//把附件名修改为上传时间
add_filter('wp_handle_upload_prefilter', 'custom_upload_filter' );
function custom_upload_filter( $file ){
    $info = pathinfo($file['name']);
    $ext = $info['extension'];
    $filedate = date('YmdHis');
    $file['name'] = $filedate.'.'.$ext;
    return $file;
}

这段代码会把附件上传的时间用作附件名,同时为了避免由于并发产生的时间相同问题,我们可以把第6行修改一下,尽量规避重名的问题。

$filedate = date('YmdHis').rand(0,99);

在时间后面加上一个0到99的随机整数作为后缀,这样可以大大降低重名问题,或者看下面.

$filedate = date('YmdHis').rand(0,99).$file['name'];
$filedate = md5($filedate);

在上传时间后面接上随机整数和附件原名,然后在转成md5,同一时间上传的同名附件以及随机到同一个整数这种概率应该非常的低了吧,不然你真的可以去买彩票了,同时上面两段代码也是为了让你做一个更加直观的对比,除了第6行不一样其他地方都是一样的写法,你要是不满意上面防止重名的写法,也可以扩展你自己想要的方法进去.