WordPress只给上传的图片文件重命名

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文件里面。