WordPress中文图片自动重命名的3种方法汇总

WordPress在处理上传的中文名称的图片时,如果主机不支持中文名称,那么会导致上传的中文 名称的图片名称显示为乱码,严重的有可能无法在用户的浏览器中正常显示;而且,在FTP下载这些中文名称的图片时,也是以乱码的形式保存,从而会出现无法 恢复原图片的问题,幸好我们使用的WordPress,这些问题有多种解决方法,具体如下:

方法1:修改WordPress系统文件实现

通 过FTP工具登录的网站服务器(虚拟主机),找到WordPress网站程序的目录下的/wp-admin/includes/file.php文件,在 文件中找到以下代码(可以通过搜索 Move the file to the uploads dir 关键字找到):

  1. // Move the file to the uploads dir
  2. $new_file = $uploads['path'] . "/$filename";
  3. if ( false === @ move_uploaded_file( $file['tmp_name'], $new_file ) )
  4. return $upload_error_handler( $file,

将搜索到的以上代码修改为如下代码:

  1. // Move the file to the uploads dir
  2. $new_file = $uploads['path'] . "/".date("YmdHis").floor(microtime()*1000).".".$ext;
  3. if ( false === @ move_uploaded_file( $file['tmp_name'], $new_file ) )
  4. return $upload_error_handler( $file, sprintf( __('The uploaded file could not be moved to %s.' ), $uploads['path'] ) );

保存修改后的 file.php 文件,这样就可以实现WordPress上传图片自动重命名了,保存后上传文件名称就会以“年月日时分秒+千位毫秒整数”的格式自动重命名了。方法2:在主题中添加自定义函数实现在网站当前使用的主题模板中(一般在主机中的文件路径为 /wp-content/themes/模块文件名)下的 functions.php 文件中加入以下代码:

  1. function wpyou_rename_upload_file_prefilter($file){
  2. $time=date("Y-m-d");
  3. $file['name'] = $time."".mt_rand(1,100).".".pathinfo($file['name'] , PATHINFO_EXTENSION);
  4. return $file;
  5. }
  6. add_filter('wp_handle_upload_prefilter', 'wpyou_rename_upload_file_prefilter');

这个方法保存后的文件名称为年月日+随机数字,如果想加上时分秒,修改第三行 $time=date(“Y-m-d”); 为 $time=date(“Y-m-d H:i:s”); 即可。

方法3:在主题中添加自定义函数实现

在网站当前使用的主题模板中(一般在主机中的文件路径为 /wp-content/themes/模块文件名)下的 functions.php 文件中加入以下代码:

  1. function wpyou_rename_upload_file($filename) {
  2. $info = pathinfo($filename);
  3. $ext = empty($info['extension']) ? '' : '.' . $info['extension'];
  4. $name = basename($filename, $ext);
  5. return substr(md5($name), 0, 15) . $ext; // 15 为要截取的文件名长度
  6. }
  7. add_filter('sanitize_file_name', 'wpyou_rename_upload_file', 10);

这个方法的代码文件重命名的规则为系统自动生成的一个32位的MD5加密文件名。(因为32位文件名有点长,所以我们在substr(md5($name), 0, 15) 中截断了将其设置为15位).

以上3种方法各有所长,第1种方法是修改WordPress系统文件,所以,不会因为更换主题而导致失效;第2,3种方法是在主题的functions.php 文件中做的扩展,如果更换了网站主题就需要重新加入代码了。

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 如果您也有好的资源或教程,您可以投稿发布,成功分享后有M币奖励和额外收入!

模板下载吧 WP技术 WordPress中文图片自动重命名的3种方法汇总 https://www.mbxzb.com/blog/file/wordpress/126.html

从明天起,做一个幸福的人,喂马、劈柴、周游世界…

常见问题
  • 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。
查看详情
  • 最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用
查看详情

相关文章

评论
暂无评论
点击按钮快速添加回复内容: 支持 高兴 激动 给力 加油 苦寻 生气 回帖 路过 威武 友军 顶贴
官方客服团队

为您解决烦忧 - 24小时在线 专业服务

WordPress中文图片自动重命名的3种方法汇总-海报

分享本文封面