1. David Wu首页
  2. WordPress
  3. WordPress安装教程

WordPress中文图片自动重命名的3种方法汇总-WordPress开发教程

WordPress在处理上传的中文名称的图片时,如果主机不支持中文名称,那么会导致上传的中文名称的图片名称显示为乱码,严重的有可能无法在用户的浏览器中正常显示;而且,在FTP下载

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

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

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

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

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

// Move the file to the uploads dir 
$new_file = $uploads['path'] . "/".date("YmdHis").floor(microtime()*1000).".".$ext; 
if ( false === @ move_uploaded_file( $file['tmp_name'], $new_file ) ) 
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 文件中加入以下代码:

function wpyou_rename_upload_file_prefilter($file){ 
$time=date("Y-m-d"); 
$file['name'] = $time."".mt_rand(1,100).".".pathinfo($file['name'] , PATHINFO_EXTENSION); 
return $file; 
} 
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 文件中加入以下代码:

function wpyou_rename_upload_file($filename) { 
$info = pathinfo($filename); 
$ext = emptyempty($info['extension']) ? '' : '.' . $info['extension']; 
$name = basename($filename, $ext); 
return substr(md5($name), 0, 15) . $ext; // 15 为要截取的文件名长度 
} 
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 文件中做的扩展,如果更换了网站主题就需要重新加入代码了。

原创文章,作者:DavidWu,如若转载,请注明出处:https://www.davidwu.net/archives/121497

服务项目 服务内容 收费标准(元)
开发定制 WordPress主题/插件开发定制 (以最终需求为准)
主题/插件汉化 汉化团队WordPress主题/插件,翻译率95% (以标的主题/插件的句子数量为准)
服务器环境配置 基于您现有服务器,搭建配置网站运行环境,结合我们多年来实战经验,可完美支持WordPress等PHP程序运行,并配置伪静态规则、优化目录权限等问题。服务器我们强烈推荐使用Linux系统。 100元/次
网站托管 若贵站目前尚无技术人员,无法完成服务器环境配置,可选择我们的网站托管服务,直接交付正常运行的WordPress站点,并且无需担心服务器的后续维护工作,一切都由我们来帮您完成。 标配套餐:1000元/年/站点 高配套餐:联系客服获取
网站加速优化 从服务器后端配置优化到WordPress数据库缓存、前端页面缓存、JS和CSS压缩合并,全方位优化网站加载速度,实现秒开。(此服务仅针对(云)服务器/VPS) 500元/次(仅站内优化200元/次)
主题配置 本站所有主题均支持,可快速实现,若有任何问题可以咨询客服解决,若您希望我们提供配置服务,可选购此服务。 英文主题安装 60元/次 汉化主题安装 30元/次
HTTPS配置 HTTPS已经不断普及,并且有着更高的安全性以及SEO上的优待。该服务收取的为服务费,SSL证书产生的费用请自行承担。 100元/次
网站搬家 迁移网站所有文件和数据库信息、网站相关配置的调整、以及迁移中的疑难问题故障排除。 标准收费:500元/次 若网站数据量大,需协商
网站运维 提供整站的运维服务,保证网站正常运行。包含:网站故障定位及排除、网站数据备份和恢复、网站攻击及木马等问题的处理等 标准收费:2000元/年 IP 5000以上需协商

发表评论

邮箱地址不会被公开。 必填项已用*标注