实现WordPress为图片或文件自动重命名的方法

30次阅读
2024年08月29日 10:55:29

共计 1733 个字符,预计需要花费 5 分钟才能阅读完成。

很多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 文件中做的扩展,如果更换了网站主题自动重命名的功能就会消失,需要重新添加上面的代码才行。

这三种方法都能实现图片重命名功能,具体选择哪种方法可以根据你的偏好来选择。

正文完
 0
鹿泽
版权声明:本站原创文章,本文由 鹿泽 于 2024年8月29日 10:55:29 发表,共计 1733 字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
本站所有文章,如无特殊说明或标注,均为本站原创发布。任何在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。
如若本站内容侵犯了原著者的合法权益,可联系我们邮箱:526009505@qq.com进行处理。
最新文章
WordPress SEO 优化之标签优化技巧

WordPress SEO 优化之标签优化技巧

今天我们来说一下 WordPress 文章标签优化的事情。在很多 WordPress SEO 优化教程中,都会...
WordPress SEO 之站外链接建设方法和技巧

WordPress SEO 之站外链接建设方法和技巧

站外链接(简称外链)是 WordPress SEO 过程中必不可少的一项工作,怎么做外链,从哪些方面着手,很多...
一次性删除WordPress文章所有评论的方法

一次性删除WordPress文章所有评论的方法

不少小伙伴在建设WordPress站点的时候都会开启文章评论等,作为网站良好的一个互动。但是这也给了很多垃圾评...
WordPress前台显示登录用户注册时间的方法

WordPress前台显示登录用户注册时间的方法

正常WordPress前台和后台都不会显示用户的注册时间,有时需要在前台显示登录用户的注册时间,可以用下面的代...
WordPress加个评论关闭时间提示的方法

WordPress加个评论关闭时间提示的方法

为了阻止垃圾评论,我们可以进入WP后台 → 设置 → 讨论,在讨论设置面勾选“自动关闭发布 14天后的文章上的...