About MuCheng
站长暮城,暂无字无号。 嗜上网,喜欢折腾,爱旅行与王者,喜爱宁静大自然。性格随和、沉稳(实际上是有些木讷),不吸烟,偶小酌,乐于箪食瓢饮。 虽说早自2005年就已开站,但站无定所,四处飘荡,遂于2020年11月正式开通本站。所发文仅用于暮城记录学习笔记之用,以利己利人为基则,无任何盈利目的,不承接广告合作,未注明出处的文章,如有侵权,请及时联系暮城予以删除。 联系方式:mc@mcheng.cn

WordPress上传文件自动重命名技巧代码

WordPress上传对于才使用WordPress的朋友可能会遇到某些问题,比如中文字符后缀的就可能出现上传失败,推荐两段在上传媒体文件时自动重命名的代码。

代码一 按时间重命名

上传文件时会以“年月日时分秒+千位毫秒整数”的格式重命名文件,如“20201111122221765.jpg”

//wordpress上传文件重命名
function git_upload_filter($file) {
    $time = date("YmdHis");
    $file['name'] = $time . "" . mt_rand(1, 100) . "." . pathinfo($file['name'], PATHINFO_EXTENSION);
    return $file;
}
add_filter('wp_handle_upload_prefilter', 'git_upload_filter');

代码二 用MD5加密生成数字并重命名

名称规则是由系统自动生成的一个32位的MD5加密文件名,由于默认生成的32位文件名有点长,所以使用substr(md5($name), 0, 20) 截断将其设置为20位。

function rename_filename($filename) {
    $info = pathinfo($filename);
    $ext = emptyempty($info['extension']) ? '' : '.' . $info['extension'];
    $name = basename($filename, $ext);
    return substr(md5($name), 0, 20) . $ext;
}
add_filter('sanitize_file_name', 'rename_filename', 10);

将以上任一代码添加到当前主题functions.php模板文件中即可。方便,省时。其实也可在电脑上全选文件,按F2,然后直接输入字母或者数字,回车重命名的方法也很方便,确认在上传也可。