之前我写的利用MD5方式WordPress附件乱码和名字重复这种方法不是很完美,如果连续上传2个及其以上的文件,命名一模一样,那么MD5都是一样,这就形成了文件名是“MD5-*",这种形式。是不是又回到了WordPress自带的那种“文件名-ID”这种方式了。
现在我更新下,换成了 MD5 16位 + 时间戳,防止WordPress附件乱码:
function make_filename_md5($filename) { $info = pathinfo($filename); $ext = empty($info['extension']) ? '' : '.' . $info['extension']; $name = basename($filename, $ext); $strtotime = strtotime(date('Y-m-d H:i:s')); return substr(md5($name), 8, 16).$strtotime. $ext; } add_filter('sanitize_file_name', 'make_filename_md5', 10);