WordPress只给上传的图片文件重命名
WordPress只给上传的图片文件重命名,不给所有的附件重命名,所有的附件重命名,网上有很多方法。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | /** * 上传的文件重命名wp123.cn 学建站更容易 */ function rename_filename($filename) { $info = pathinfo($filename); $ext = empty($info['extension']) ? '' : '.' . $info['extension']; $name = basename($filename, $ext); if(!in_array(strtolower($info['extension']), ['jpg','jpeg','png', 'gif'])) { return $name; } return substr(md5($name), 0, 20) . $ext; } add_filter('sanitize_file_name', 'rename_filename', 10); add_theme_support('category-thumbnails'); |
参考:https://www.xmhudong.com/news/11998/
但是这个代码有个问题,图片能被重新命名为md5格式的名字。
但是当上传zip文件的时候,是会提示不被允许的文件类型。
最后我用了下面这种:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | add_filter('wp_handle_upload_prefilter', 'custom_upload_filter' ); function custom_upload_filter( $file ){ $info = pathinfo($file['name']); $ext = empty($info['extension']) ? '' : '.' . $info['extension']; /* check image is file or not */ if ($info['extension']== 'jpg' || $info['extension'] == 'jpeg' || $info['extension'] == 'gif' || $info['extension'] == 'png') { $name = basename($file['name'], $ext); $filedate = date('YmdHis').rand(10,99);//为了避免时间重复,再加一段2位的随机数 $file['name'] = $filedate.'-'.$name.$ext; } return $file; } |
注:代码需要添加在functions.php文件里面。