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

现在,就和大家说说更加接地气一点的 WordPress 技巧,就是在我们上传图片的时候,能够让图片的名称自动变成英文或数字。具体有根据上传时间命名和MD5转码文件名为32位字符串两种格式的文件命名方法,只能二选一。
一、根据上传的时间命名
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;
- }
3、具体效果

PS:我是本地测试的,不明白为什么上传时间对不上号,日期倒是对上号了。
二、文件名md5转码为32位字符串
1、举例说明:如 f78c857f04e596f4e7bcd36fddf2769f.xxx,原始文件名为admin.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'];
- $md5 = md5($file['name']);
- $file['name'] = $md5.$ext;
- return $file;
- }
3、具体效果

小结
以上两种方法实现WordPress上传图片自动重命名的方法只能二选一,不可同时使用两种方法,要不然出错的话后果自负哦。经过boke112测试后,本文的两种方法都能成功实现,换句话说有了这两种方法之后,以后我们上传图片的时候再也不用担心图片文件名是中文或其他不合格的名称了,可以放心大胆地上传图片了。
纯代码实现WordPress上传图片自动重命名的方法的更多相关文章
- wordpress上传图片时重命名--修改插件时遇到的一些问题
wordpress是用php语言开发的博客平台,它扩展性强,容易扩展,很适合拿来做二次开发. 1,问题由来 本周五,我在浏览公司的网站(基于wordpress开发)时发现,网站首页上有两篇文章的缩略图 ...
- WordPress 中文图片 上传 自动重命名
由于国人很少有在上传图片前将图片名重命名为英语的,所以自动重命名对于WP来说尤为重要,特别是LINUX的不支持中文名的. WordPress上传多媒体的代码都存放于\wp-admin\includes ...
- WordPress 实现附件上传自动重命名但不改变附件标题
WordPress 上传媒体文件时,默认会保持文件名不变.如果上传文件名中包含中文字符,则会造成部分浏览器显示的文件 URL 疑似乱码甚至无法访问.网上流行较广的是通过注册 wp_handle_up ...
- 使用IDEA进行Lua代码调试、自动提示、代码跳转、智能重命名
试了几个Lua IDE后,Lua Studio.Lua Glider.VS+babelua插件.Sublime都不是特别满意.直到发现了国人自创的另一个神奇工具:基于IDEA的EmmyLua插件.该插 ...
- mysql 连接闪断自动重连的方法(用在后台运行中的PHP代码)
mysql 连接闪断自动重连的方法(用在后台运行中的PHP代码)当mysql断开连接 $_instance这个还是有值得 所以会报错 MySQL server has gone away 这个地方需要 ...
- Mac OS 文件、文件夹重命名的方法
在Mac OS中,文件和文件名重命名的方法非常简单 选中你想要命名的文件或者文件夹,按回车,可以直接重命名,输入你要修改的内容,确认后,再按回车就OK啦--- 希望能对你有所帮助^_^
- debug - taotao项目 - IDEA拖动文件的自动重命名是超级巨坑, 一定要非常小心
大量的如下错误: org.springframework.beans.factory.BeanCreationException: Could not autowire field 还是要相信报错 不 ...
- NodeJS+formidable实现文件上传加自动重命名
前述 本人node初学者,此前使用原生node实现文件上传时遇到了一些困难,只做到了.txt 和.png两中格式的文件可以正常上传,如果上传其他格式文件服务端保存的文件会无法正常打开,原因是对form ...
- C# 重命名文件方法
. //重命名文件 // 改名方法 FileInfo fi = new FileInfo("旧路径"); //xx/xx/aa.rar fi.MoveTo("新路径&qu ...
随机推荐
- 查询sql server 2008所有表和行数
查询sql server 2008所有表和行数 SELECT a.name, b.rows FROM sysobjects AS a INNER JOIN sysindexes AS b ON a.i ...
- Android Studio 第一次启动配置
第一次启动AS前,为了避免重新下载新版本的SDK 操作如下: AS启动前,请先将bin目录的idea.properties文件中增加一行:disable.android.first.run=true ...
- mysqlslap 压测工具使用说明
PS:今天一同事问我有木有比较靠谱的mysql压力测试工具可用.其实mysql自带就有一个叫mysqlslap的压力测试工具,还是模拟的不错的.下面举例说说.mysqlslap是从5.1.4版开始的一 ...
- cheerio ==> node中的jquery
三.cheerio ==> node中的jquery https://www.npmjs.com/package/cheerio $ npm install cheerio -- save 1 ...
- MFC创建好的对话框如何移植到新程序中
1.用文本文件打开需要移植对话框工程中的rc文件 2.在RC文件夹中找到需要移植的对话框内容,然后拷贝到新的工程的rc文件中 3.在原有工程的rsource.h中所有和这个对话框有关的ID都拷贝到新的 ...
- 【CF724F】Uniformly Branched Trees 动态规划
[CF724F]Uniformly Branched Trees 题意:询问n个点的每个非叶子点度数恰好等于d的不同构的无根树的数目. $n\le 1000,d\le 10$. 题解:先考虑有根树的版 ...
- Mecanim高级主题:Mecanim Blend Tree应用、Blend Tree 选项、复合Blend Tree
一.Blend Tree介绍及应用 一个游戏动画的基本任务就是将两个或多个相似的动作混合.也许最广为人知的例子就是依照任务行动的速度将行走和跑动动画混合起来了.另一个例子就是角色在跑动中向左或向右转身 ...
- Mac下更新SVN
Mac下自带的SVN版本还是1.6的,而最新的Versions已经更新到支持1.7版本了,在Windows下面使用1.7版本久了所以也想更新下Mac版本. OK,废话不多说,简单描述操作步骤: 去Ap ...
- 数据库操作相关(sql语句-命令行)
创建数据库: create database books; 创建用户: mysql> grant select,insert,delete,uptate -> on books.* ...
- Windows 8.1 100% 磁盘使用率解决方案
前段时间我的win8电脑爆卡!动不动就卡死,一点都动不了. 好不容易打开了任务管理器,发现disk usage: 100%,实在是不理解,磁盘使用率100%怎么会影响流畅度?如果是CPU或内存还好理解 ...