纯代码实现WordPress上传图片自动重命名的方法

原创 新起点博客  2020-05-26 11:42 
【上云必备】上云仅?102/年

在我们使用 WordPress 发布文章时,经常都需要添加图片、多媒体什么的。然而,大家都知道 WordPress 是舶来物,对于中文用户来说,我们都会把图片命名为中文的,由于 WordPress 机制的原因,并不能正常的显示图片或者各种的问题。那么,如何让 WordPress 图片自动重命名然后正常显示使用呢?

现在,就和大家说说更加接地气一点的 WordPress 技巧,就是在我们上传图片的时候,能够让图片的名称自动变成英文或数字。具体有根据上传时间命名和MD5转码文件名为32位字符串两种格式还有随机数字文件命名方法。

一、随机数字

在"WordPress无插件实现上传图片自动随机重命名"文章中,我们可以自动重命名随机的数字。

2、具体实现方法:将以下代码添加到所使用主题的functions.php 文件中最后一个?>的前面即可。

function rename_upload_img($file) {
$time=date("Y-m-d H:i:s");
$file['name'] = $time."".mt_rand(100,999).".".pathinfo($file['name'] , PATHINFO_EXTENSION);
return $file;
}
add_filter('wp_handle_upload_prefilter', 'rename_upload_img');

二、根据上传的时间命名

1、举例说明:如2017031610182866.xxx,表示2017年3月16日10时18分28秒上传的,最后两位数字66是10到99之间的随机数,xxx表示文件类型后缀。

2、具体实现方法:将以下代码添加到所使用主题的functions.php 文件中最后一个?>的前面即可。

add_filter('wp_handle_upload_prefilter', 'custom_upload_filter' );
function custom_upload_filter( $file ){
    $info = pathinfo($file['name']);
    $ext = $info['extension'];
    $filedate = date('YmdHis').rand(10,99);//为了避免时间重复,再加一段2位的随机数
    $file['name'] = $filedate.'.'.$ext;
    return $file;
}

三、文件名md5转码为32位字符串

1、举例说明:如 f78c857f04e596f4e7bcd36fddf2769f.xxx,原始文件名为admin.xxx。

2、具体实现方法:将以下代码添加到所使用主题的functions.php 文件中最后一个?>的前面即可。同理使用md5基本上也是不会重复的。

add_filter('wp_handle_upload_prefilter', 'custom_upload_filter' );
function custom_upload_filter( $file ){
    $info = pathinfo($file['name']);
    $ext = '.' . $info['extension'];
    $md5 = md5($file['name']);
    $file['name'] = $md5.$ext;
    return $file;
}

以上两种方法实现WordPress上传图片自动重命名的方法只能选一种,不可同时使用,要不然出错的话后果自负哦。本文的方法都能成功实现,换句话说有了这种方法之后,以后我们上传图片的时候再也不用担心图片文件名是中文或其他不合格的名称了,可以放心大胆地上传图片了。

本文地址:https://www.henenseo.com/archives/2099
关注我们:请关注一下我们的微信公众号:扫描二维码新起点博客的公众号,公众号:xinqidian129
版权声明:本文为原创文章,版权归 新起点博客 所有,欢迎分享本文,转载请保留出处!
宝塔服务器面板,一键全能部署及管理,送你3188元礼包,点我领取
【腾讯云】海外1核2G服务器低至2折,半价续费券限量免费领取!

发表评论


表情