以下来自https://www.suxing.me/wp-courses/941.html

本文将会介绍两个格式的文件命名方法:根据上传的时间命名,如20150901112433.xxx(表示2015年9月1日11时24分33秒上传的,xxx表示文件类型后缀);另一种是将文件名通过md5转码后得到的一个32位字符串,如 f78c857f04e596f4e7bcd36fddf2769f.xxx(原始文件名为admin.xxx)。在自定义的wordpress主题或官方自带的主题中都可以使用这个方法来实现上传文件重命名。

根据上传时间重命名文件

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;
}

使用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;
}

如果你是使用苏醒的vfilmtime2014主题,请把上面的代码加入到主题目录中的includes文件夹里的add.php中即可。

如果你是使用苏醒的traveler主题,请把上面的代码加入到主题目录中里的functions_suxingme.php中即可。

其他的朋友可以把这段代码黏贴到你当前 WordPress主题的 functions.php 中!


以下来自http://blog.ixiqin.com/archives/90.html

之前做项目时没有考虑到这个事情,因为会和Typecho一样,可以自动重命名,就没有太在意,结果如今打算搬环境时,发现出了问题,各种文件名乱码,整个人都不好了,不得已,只能手动转换。现在先记录下修改的方法,以后用WP,先上这个。
方法实现也很简单,在主题的functions.php添加如下内容即可

function rename_filename($filename) {
    $info = pathinfo($filename);
    $ext = empty($info['extension']) ? '' : '.' . $info['extension'];
    $name = basename($filename, $ext);
    return substr(md5($name), 0, 16) . $ext; //截取前面16个字符
}
add_filter('sanitize_file_name', 'rename_filename', 10);

标签:WordPress

你的评论