说明
使用 WordPress 发布文章时,经常都需要添加图片。由于有时候会将图片命名为中文,而导致部分图片无法显示,亦是图片名字重复导致的大量的SQL查询,引发的加载速度变慢。我们可以通过将图片命名为上传时间,或者将图片名字转化为MD5的字符串来避免此类问题。
方法
两个方法均是将代码添加到主题目录的functions.php文件,当然若是主题中有子主题,添加到子主题中更好不过,这样更新主题的时候就无需再次添加代码了。
方法1:命名为上传时间
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;
}

方法2:
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;
}
因为我使用的是方法一,所以方法二就没有演示图了。
PS
个人比较推荐使用方法一进行修改,因为同样的名字转化为MD5之后,字符串也是相同的,从而导致出现相同的文件名字。
注意:两种方法只能选其一进行使用,否则可能会出现冲突导致的错误。