修改网站程序:wp-admin/includes/file.php 找到下面代码:
$new_file = $uploads['path'] . "/$filename";
修改为:
$new_file = $uploads['path'] . "/".date("YmdHis").floor(microtime()*1000).".".$ext;
以上代码意思就是,上传文件就会以“年月日时分秒+千位毫秒整数”的格式重命名文件。这就再也不用担心图片文件名相同而覆盖了原文件。
其实这样的原理就是实现wordpress上传图片自动重命名了。
所以龙哥做了个2.0版本,因为有时候我命名的图片是有自身含义的,并且是英文名对上传也没有影响,但是改了代码之后全部给我统一更改了。
废话不多说,上代码!
if(preg_match('/[\x{4e00}-\x{9fa5}]/u', $filename))//意思是包含中文才修改,不然就给我保留下来 $new_file = $uploads['path'] . "/".date("YmdHis").floor(microtime()*1000).".".$ext; else $new_file = $uploads['path'] . "/$filename";
今天的内容就到这里了,喜欢的关注一下龙哥,分享更多wordpress干货技巧
第三种方法:更改wordpress主题函数文件functions.php文件
在当前WordPress主题文件下面的functions.php后面加上以下代码即可,以下代码会检测一下上传的图片名中是否包含中文,如果包含中文就重命名,如果不包含中文,就使用原来的图片名称
add_filter('sanitize_file_name','fanly_custom_upload_name', 5, 1 ); function fanly_custom_upload_name($file){ $info = pathinfo($file); $ext = empty($info['extension']) ? '' : '.' . $info['extension']; $name = basename($file, $ext); if(preg_match("/[一-龥]/u",$file)){//中文换名 $file = substr(md5($name), 0, 20) . rand(00,99) . $ext;//截取前20位MD5长度,加上两位随机 }elseif(is_numeric($name)){//数字换名 $file = substr(md5($name), 0, 20) . rand(00,99) . $ext;//截取前20位MD5长度,加上两位随机 } return $file; }栖息邦 收藏Ctrl+D 转载注明来源