因为之前网站上传的图片中包含中文字符,不会自动重命名,所以给优化了一下,也写了篇文章记录了一下优化的过程,感兴趣的朋友可以看看:《WordPress怎么让上传的图片重命名》,最近发现重命名后的文件名太长了,所以想进行下限制!

WordPress上传媒体文件名称过长怎么进行限制-米宝教室

通过上图可以看到文件名非常的长,

网站媒体文件名过长可能会对网站的性能和用户体验产生一些影响,尽管这些影响通常是微小的。以下是可能会受到影响的方面:

  1. URL长度:文件名过长会导致URL过长,尤其是在网址中包含多个嵌套的文件夹名称时。长URL可能会影响搜索引擎优化(SEO),因为搜索引擎可能更喜欢较短的URL。同时,长URL可能会导致一些网页无法正常被收录,因为搜索引擎对URL长度有限制。
  2. 用户体验:长的文件名在网页上显示时可能会打破布局,并且难以识别和记忆。此外,长的URL也不利于用户在浏览器地址栏中手动输入,可能导致用户遇到困难,尤其是在移动设备上。
  3. HTTP请求:当浏览器请求网页时,会向服务器发送HTTP请求,其中包含所有资源(例如图片、CSS和JavaScript)的URL。如果URL过长,请求头的大小会相应增加,从而增加服务器和浏览器之间的传输数据量。虽然单个请求头的大小通常不是主要的性能问题,但在复杂的页面上,这可能会影响整体性能。

然后对重命名代码进行了优化:

// 添加文件上传前的过滤器钩子 
add_filter( 'wp_handle_upload_prefilter', 'custom_upload_name' ); 
 
// 自定义文件名处理函数 
function custom_upload_name( $file ) { 
    // 获取原始文件名的信息和扩展名 
    $info = pathinfo( $file['name'] ); 
    $ext = empty( $info['extension'] ) ? '' : '.' . $info['extension']; 
 
    // 从原始文件名中获取纯净的文件名部分 
    $name = basename( $file['name'], $ext ); 
 
    // 对文件名进行URL编码 
    $name = urlencode( $name ); 
 
    // 使用哈希值生成唯一标识符(32个字符长度) 
    $unique_id = md5( uniqid() . rand() ); 
 
    // 结合文件名和唯一标识符生成新的文件名,并截断至32个字符 
    $file['name'] = substr( $name . '-' . $unique_id, 0, 32 ) . $ext; 
 
    return $file; 
} 


具体效果还不知道,等下看看效果