因为之前网站上传的图片中包含中文字符,不会自动重命名,所以给优化了一下,也写了篇文章记录了一下优化的过程,感兴趣的朋友可以看看:《WordPress怎么让上传的图片重命名》,最近发现重命名后的文件名太长了,所以想进行下限制!
通过上图可以看到文件名非常的长,
网站媒体文件名过长可能会对网站的性能和用户体验产生一些影响,尽管这些影响通常是微小的。以下是可能会受到影响的方面:
- URL长度:文件名过长会导致URL过长,尤其是在网址中包含多个嵌套的文件夹名称时。长URL可能会影响搜索引擎优化(SEO),因为搜索引擎可能更喜欢较短的URL。同时,长URL可能会导致一些网页无法正常被收录,因为搜索引擎对URL长度有限制。
- 用户体验:长的文件名在网页上显示时可能会打破布局,并且难以识别和记忆。此外,长的URL也不利于用户在浏览器地址栏中手动输入,可能导致用户遇到困难,尤其是在移动设备上。
- 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;
}
具体效果还不知道,等下看看效果
评论 (0)