WordPress只给上传的图片(JPG/PNG/GIF)文件重命名 不给其他附件重命名

Wordpress只给上传的图片(jpg/png/gif)文件重命名 不给其他附件重命名

关于WordPress只给上传的图片(JPG/PNG/GIF)文件重命名,不给其他附件重命名,这个问题我之前参考了下面两段代码:

第一段

1
2
3
4
5
6
7
8
9
10
11
12
function image_name_with_date($filename) {
    $info = pathinfo($filename);
    $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($filename, $ext);
        return date('d_m_y').'-'.$name.$ext;                                                      
    }
 return $filename; //if file is not image
}                                                                  
add_filter('sanitize_file_name', 'image_name_with_date', 10);

源头:https://stackoverflow.com/questions/65424416/wordpress-how-to-rename-image-during-upload-with-current-date

第二段

1
2
3
4
5
6
7
8
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;
}

源头:https://www.suxing.me/wp-courses/941.html

但我根据自己的需要,使用了下面这种。

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'];
     /* 检查是否为图片格式 */
    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;
}

你可以根据自己的需要做修改。