很多WordPress新手朋友在使用WordPress搭建网站的时候,经常会上传自己命名的图片,而我们使用的服务器大多不支持WordPress特殊字符命名的图片,所以会导致上传的名称的图片名称显示为乱码,严重的可能会导致图片无法正常显示出来。而且在备份网站的时候也会因为名字命名的图片导致备份失败,致使网站的图片无法正常打开。
所以如果WordPress网站支持图片自动重命名是比较友好的,就不用担心图片的命名问题了。那么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";
将搜索到的以上代码修改为如下代码:
// Move the file to the uploads dir
$new_file = $uploads['path'] . "/".date("YmdHis").floor(microtime()*1000).".".$ext;
保存修改后的 file.php 文件,这样就可以实现WordPress上传图片自动重命名了,保存后上传文件名称就会以“年月日时分秒+千位毫秒整数”的格式自动重命名了。
此种方法是更改了WordPress的核心文件,如果将来你更新了WordPress版本,那么自动重命名的功能就会消失,需要你重新修改代码才行。
方法2:在主题中添加自定义函数实现
在网站当前使用的主题模板中(一般在主机中的文件路径为 /wp-content/themes/模块文件名\)下的 functions.php 文件中加入以下代码:
function bailuze_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', 'bailuze_rename_upload_file_prefilter');
这个方法保存后的文件名称为年月日+随机数字,如果想加上时分秒,修改第三行 $time=date(“Y-m-d”); 为 $time=date(“Y-m-d H:i:s”); 即可。
方法3:在主题中添加自定义函数实现
在网站当前使用的主题模板中(一般在主机中的文件路径为 /wp-content/themes/模块文件名\)下的 functions.php 文件中加入以下代码:
function bailuze_rename_upload_file($filename) {
$info = pathinfo($filename);
$ext = empty($info['extension']) ? '' : '.' . $info['extension'];
$name = basename($filename, $ext);
return substr(md5($name), 0, 15) . $ext; // 15 为要截取的文件名长度
}
add_filter('sanitize_file_name', 'bailuze_rename_upload_file', 10);
这个方法的代码文件重命名的规则为系统自动生成的一个32位的MD5加密文件名。(因为32位文件名有点长,所以我们在substr(md5($name), 0, 15) 中截断了将其设置为15位).
第2,3种方法是在主题的functions.php 文件中做的扩展,如果更换了网站主题自动重命名的功能就会消失,需要重新添加上面的代码才行。
这三种方法都能实现图片重命名功能,具体选择哪种方法可以根据你的偏好来选择。
2、本站所有文章,如无特殊说明或标注,均为本站原创发布。任何在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们邮箱:526009505@qq.com进行处理。
3、咨询请联系QQ:526009505