关于WordPress上传图片自动重命名的代码及方法网上已经非常凌乱,甚至基本都是一成不变的功能,兼容性和效果并不那么理想,所以子凡在做泪雪网开发的时候就改进了一下这些代码,可以让WordPress媒体库上传对中文名图片以及无意义的数字命名图片更具较强的兼容性。

WordPress图片上传自动重命名

在我们使用WordPress发布文章时,经常都需要添加图片、多媒体什么的。然而大家都知道WordPress是个外国货,对于中文的支持以及对国内某些偏执于喜欢使用Windows Server系统服务器的朋友来说就显得不那么可观了,也正是对于我们中文用户来说,我们都习惯或者喜欢把图片命名为中文的,但是由于WordPress的机制的原因,并不能正常的显示图片或者各种的问题。所以这一次子凡就需要给大家带来一个全面而优质的WordPress中文名图片上传解决方案了。

依然是WordPress的老规矩,将以下代码添加到当前主题的functions.php中:

1
2
3
4
5
6
7
8
9
10
11
12
13
//WordPress中文名、数字名图片上传自动重命名
add_filter('sanitize_file_name','fanly_custom_upload_name', 5, 1 );
function fanly_custom_upload_name($file){
	$info	= pathinfo($file);
	$ext	= empty($info['extension']) ? '' : '.' . $info['extension'];
	$name	= basename($file, $ext);
	if(preg_match("/[一-龥]/u",$file)){//中文换名
		$file	= substr(md5($name), 0, 20) . rand(00,99) . $ext;//截取前20位MD5长度,加上两位随机
	}elseif(is_numeric($name)){//数字换名
		$file	= substr(md5($name), 0, 20) . rand(00,99) . $ext;//截取前20位MD5长度,加上两位随机
	}
    return $file;
}

使用以上代码还可以解决WordPress文章上传中文名图片附件出现乱码或不显示的问题,也就可以为中文名图片以及无意义的纯数字命名的图片自动使用MD5加密重命名并截取,相比与其它WordPress图片自动重命名兼容性更强,效果也更好一些。

不过最后子凡还是有一点建议,如果大家重视对图片的优化,大家的图片命名还是竟可能的使用英文单词/词组或这中文拼音等方式,更有利于图片的命名的优化。以上代码使用MD5方式加密命名的方式其实也并不利于图片优化,只是看上去装逼的欲望和逼格更高罢了。当然图片还是要合理的添加alt描述属性才是对图片最最最有利的优化。

除非注明,否则均为泪雪博客原创文章,转载请以链接形式标明本文地址

本文链接:https://zhangzifan.com/wordpress-images-rename.html

发表评论

  1. 文浩博客
    1楼
    文浩博客 6个月前 (04-18)

    谢谢,找了好久终于找到了

    • 张子凡
      回复
      张子凡 6个月前 (04-18)
      回复 @文浩博客 :终于让你找到了,哈哈哈
  2. 上品户外
    2楼
    上品户外 8个月前 (03-09)

    谢谢博主分享 支持

  3. 天下石磨豆浆机
    3楼
    天下石磨豆浆机 8个月前 (03-06)

    谢谢博主分享,受教了。

  4. 乐赚168
    4楼
    乐赚168 8个月前 (03-04)

    收藏了,以后很有可能就用上了

  5. 粉丝!
    5楼
    粉丝! 8个月前 (03-04)

    更新频率非常赞,能学到不少WP知识。挺好挺好,现在能这样频率更新的不多了,即使是WP大学也都冷淡了不少。加油加油!!!!

    • 张子凡
      回复
      张子凡 8个月前 (03-04)
      回复 @粉丝! :只是把平时用到东西分享出来而已,很多之前大佬们写的代码都有些过时了
  6. 猪八戒自媒体论坛
    6楼
    猪八戒自媒体论坛 8个月前 (03-03)

    收藏一下
    现在就用着了