WordPress上传中文名图片自动重命名
2018-11-02 来源:学做网站论坛
在学做网站论坛之前的的建站教程中,我们介绍了如何让wordpress网站支持上传中文图片名的方法,这个是需要通过修改WORDPRESS程序文件才能实现上传中文名图片的效果。
除了这种方法之外,还有下面一种解决wordpress程序不支持上传中文名图片的方法:WordPress上传中文名图片自动重命名。
方法很简单,只需要在自己的wordpress主题函数文件functions.php中添加以下代码:
function wpyou_rename_upload_file_prefilter($file){
$time=date("Y-m-d");
$file['name'] = $time."".mt_rand(1,100).".".pathinfo($file['name'] , PATHINFO_EXTENSION);
return $file;
}
add_filter('wp_handle_upload_prefilter', 'wpyou_rename_upload_file_prefilter');
$time=date("Y-m-d");
$file['name'] = $time."".mt_rand(1,100).".".pathinfo($file['name'] , PATHINFO_EXTENSION);
return $file;
}
add_filter('wp_handle_upload_prefilter', 'wpyou_rename_upload_file_prefilter');
这种方法实现的效果和前面介绍的方法结果是一样的,最大的好处是每次更新wp都不用再反复修改程序文件了,但是弊端是上传的图片全部都会重命名。
为了解决这种弊端,需要先检测一下图片名中是否包含中文,如果包含中文就重命名,如果不包含中文,就使用原来的图片名。修改后的代码如下:
function tin_custom_upload_name($file){
? if(preg_match('/[一-龥]/u',$file['name'])):
? $ext=ltrim(strrchr($file['name'],'.'),'.');
? $file['name']=preg_replace('#^www\.#', '', strtolower($_SERVER['SERVER_NAME'])).'_'.date('Y-m-d_H-i-s').'.'.$ext;
? endif;
? return $file;
}
add_filter('wp_handle_upload_prefilter','tin_custom_upload_name',5,1);
? if(preg_match('/[一-龥]/u',$file['name'])):
? $ext=ltrim(strrchr($file['name'],'.'),'.');
? $file['name']=preg_replace('#^www\.#', '', strtolower($_SERVER['SERVER_NAME'])).'_'.date('Y-m-d_H-i-s').'.'.$ext;
? endif;
? return $file;
}
add_filter('wp_handle_upload_prefilter','tin_custom_upload_name',5,1);
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点!
本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。
最新资讯
热门推荐