WordPress不使用插件实现上传图片自动重命名

你是不是也遇到过这些问题?上传图片到WordPress时:

  • 文件名乱七八糟的,有中文有英文还有特殊符号
  • 重复上传时自动变成”图片-1.jpg”、”图片-2.jpg”这种难看的形式
  • 文件名太长导致链接显示不全
  • 某些服务器对中文文件名支持不好,图片加载不出来

今天我就教你两招,不用装任何插件,简单修改下代码就能让WordPress自动给上传的图片重命名!

方法一:时间戳+随机数命名(推荐)

这个方案最实用,生成的格式是:年月日时分秒+随机数

// 把这段代码加到主题的functions.php文件最后
add_filter('wp_handle_upload_prefilter', 'custom_upload_filter');
function custom_upload_filter($file) {
    $info = pathinfo($file['name']);
    $ext = isset($info['extension']) ? '.' . $info['extension'] : ''; // 保留原后缀名
    $file['name'] = date('YmdHis') . rand(10, 99) . $ext; // 生成如2025040215304599.jpg
    return $file;
}

效果:
你上传的”自拍.jpg” → 自动变成”2025040215304599.jpg”

优点:

  • 绝对不会重名
  • 文件名整齐规范
  • 按时间排序方便管理

方法二:MD5加密命名(更安全)

如果你不想让人猜到文件名,可以用这种加密方式:

// 同样加到functions.php
add_filter('sanitize_file_name', 'rename_filename', 10);
function rename_filename($filename) {
    $info = pathinfo($filename);
    $ext = isset($info['extension']) ? '.' . $info['extension'] : '';
    return substr(md5(uniqid()), 0, 20) . $ext; // 生成如d41d8cd98f00b204e980.png
}

适合场景:

  • 需要保护图片隐私时
  • 文件名完全随机化需求

重要提醒!

  1. 先备份! 改functions.php前一定要备份,改错了网站可能打不开
  2. 二选一 两种方法别同时用,会冲突
  3. 换主题要重改 如果你换了WordPress主题,要记得在新主题的functions.php里重新添加这段代码

为什么推荐这么做?

我自己的网站用了时间戳命名法后:

  • 图片管理清爽多了
  • 再也不用担心重复上传问题
  • 网页加载速度好像还快了点(可能是心理作用哈哈)

试试看吧,真的比装插件方便多了!

性能优化

WordPress如何将古腾堡编辑器更改为经典编辑器

2025-4-1 20:39:30

性能优化

WordPress如何将古腾堡编辑器更改为经典编辑器

2025-4-1 20:39:30

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索