文章目录[隐藏]

前提说明

在我们使用 WordPress 发布文章时,经常都需要添加图片、多媒体什么的。然而,大家都知道 WordPress 是国外开发的,对于中文用户来说,在我们使用过程中,我们基本都会把图片命名为中文,由于 WordPress 的机制的原因,上传图片后可能出现图片显示不正常或者其他各种的问题,那么,如何才能让 WordPress 图片重命名呢?

WordPress无需插件上传图片自动重命名代码插图

解决方法

现在,360模板网就告诉大家一个  WordPress 优化技巧,让图片上传以后,文件能在我们上传的时候自动变成英文或数字。

选择下面任意一中格式的代码放置在当前使用主题的“functions.php ”文件中保存即可

注意:部分主题默认已支持自动重命名,如主题已支持,请不要重复添加!

优化代码

代码一:按时间重命名

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

//根据上传时间重命名文件
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加密生成数字并重命名

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

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

发表回复

后才能评论