wordpress上传文件自动按日期更名

对于 WordPress 上传图片附件命名的问题,我个人是趋向于用规则重新给图片命名,这样方便后期图片的迁移和管理。周良博客 目前使用的图片附件命名方式是“人工智能。。。”,就是自己手动修改图片的名称,和每篇文章的标题中英文相对。但这个方法对很多图片量很大的站点来说,太过于烦琐。所以周良这里给大家一个 WordPress小技巧,可以让WordpPress 上传图片的时候,自动根据日期时间修改图片地址名称。
我们可以通过下面的代码实现

方法一,插件形式

 代码如下 复制代码

<?php

function huilang_wp_handle_upload_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', 'huilang_wp_handle_upload_prefilter');

使用方法:把这段代码另存为 .php 文件,上传到 wp-content/plugins 目录下,然后在后台启用这个插件即可。如果不想以插件的形式使用,可以把这段代码黏贴到你当前 WordPress 主题的 functions.php 中(黏贴到 functions.php 中时,请一定要去掉本代码第一行的“<?php”,不然会导致网站崩溃)。

注:上面的代码修改图片改名称的机制为“年月日+随机数字”,如果你想要加上时分秒,请修改第12行 $time=date(“Y-m-d”); 为 $time=date(“Y-m-d H:i:s”); 即可。

方法二,直接使用在functions.php加如下代码

往主题functions.php添加以下代码即可

 代码如下 复制代码

//自动改图片文件名称 
function huilang_wp_handle_upload_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', 'huilang_wp_handle_upload_prefilter'); 

这样做的好处有:有些主机不支持中文名称,会导致上传的图片不会正常显示在用户的浏览器上;ftp下载的中文图片名称的时候乱码,如果你是备份到本地然后恢复的时候,那就全毁了(额,我就是受害者,so...);

ps:上面是改名称为年月日+随机数字,要想加上时分秒,修改第三行 $time=date("Y-m-d"); 为 $time=date("Y-m-d H:i:s"); 即可

方法三,同样是在function函数中操作

用过wordpress的应该都知道如果我们上传的文件的名字中有中文,上传到linux服务上后发现会是乱码,所以有必要把上传的文件做一个自动重命名...这样也会方便我们管理

在functions.php中加入以下代码:

 代码如下 复制代码
function new_filename($filename) {
    $info = pathinfo($filename);
    $ext = empty($info['extension']) ? '' : '.' . $info['extension'];
    $name = basename($filename, $ext);
    return md5($name) . $ext;
}
 
add_filter('sanitize_file_name', 'new_filename', 10);

添加保存之后,就可以实现了文件的自动更名,自动生成的是一个32个的md5加密的文件名,如果你认识32位的文件名太长了
你可以使用 substr()来截取你想要的长度,代码如下,我使用的是15位

 代码如下 复制代码

function new_filename($filename) {
    $info = pathinfo($filename);
    $ext = empty($info['extension']) ? '' : '.' . $info['extension'];
    $name = basename($filename, $ext);
    return substr(md5($name), 0, 15) . $ext;
}
 
add_filter('sanitize_file_name', 'new_filename', 10);

时间: 2024-10-23 21:32:03

wordpress上传文件自动按日期更名的相关文章

jsp上传文件之后,针对上传文件自动生成超链接供下载,具体代码。谢谢。

问题描述 jsp上传文件之后,针对上传文件自动生成超链接供下载,具体代码.谢谢. jsp上传文件之后,针对上传文件自动生成超链接供下载,整个过程的具体代码.谢谢. 解决方案 这个代码很长,你自己做到哪一步了.上传文件后会返回一个地址,使用servlet访问路径和那个地址拼接出url放在a标签的href就行了 解决方案二: http://www.cnblogs.com/xdp-gacl/p/4200090.html 解决方案三: JSP上传文件代码

WordPress上传文件中文乱码(自动重命名)

下面以wordpress 3.2.1为例,打开wp-admin/includes/file.php文件,找到第326行这段代码:  代码如下 复制代码 // Move the file to the uploads dir $new_file = $uploads['path'] . "/$filename"; if ( false === @ move_uploaded_file( $file['tmp_name'], $new_file ) )         return $up

WordPress上传中文附件乱码解决方法

熟悉PHP的朋友可能会很快解决问题,但不熟悉PHP代码的朋友看过此文章相信一定能解决你的问题,接下来就分享下我的解决wordpress上传中文文件名乱码的心得吧~: 找到/wp-admin/includes/file.php这个文件,并最如下修改:  代码如下 复制代码 function wp_handle_upload( &$file, $overrides = false, $time = null ) { //-. // Move the file to the uploads dir /

fckeditor上传文件按日期存放及重命名方法

  这篇文章主要介绍了fckeditor上传文件按日期存放及重命名方法,本文修改了相关PHP文件实现这二个需求,需要的朋友可以参考下 1. 实现 fckeditor 按日期分目录的形式存放上传的文件,比如今天是 2015年5月5日,那么今天上传的文件都放在这个目录里面去,明天上传的则自动创建并放在类似 2015-05-06 这样的目录里面去. (1)找到 editoreditorfilemanagerconnectorsphp 文件夹下的 config.php 文件 (2)找到如下配置变量 查看

PHP上传文件时自动分配路径的方法_php技巧

本文实例讲述了PHP上传文件时自动分配路径的方法.分享给大家供大家参考.具体分析如下: 网站上传文件时,如果是小的企业站,放在一个目录还没问题,当网站大了,上传的文件多了,我们就不能放在同一个目录了,这里我们就来讲讲用PHP自动给上传的文件分配路径的方法. PHP分配上传文件的路径实例 主要程序片段如下: 复制代码 代码如下: <?php    /*数字方式分配路径*/    function allotPath($id, $extend='jpg') {       $folders = st

wordpress媒体库上传文件失败解决办法

这是之前一位win主机用户遇到的问题,其他系统的用户不知道会不会出现这种问题,一般在网站目录可读写权限没有达到777的情况下,会出现这样的提示:不能将文件移动到目录! win主机用户在升级到wordpress3.7.1版本之后出现的一个问题: 中文名的图片上传以后,在FTP存放文件的目录中(wp-content/uploads/)查看会出现文件名乱码的现象.直接访问链接无法显示图片,看似是路径的问题,其实不然,把文件名改为数字或者英文再上传却可以正常显示,这就说明问题所在. 怎么让中文名自动重命

php 生成自动创建文件夹并上传文件的示例代码

 本篇文章主要是对php生成自动创建文件夹并上传文件的示例代码进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助    代码如下: <? session_start(); if($_SESSION['Company']=='') {  //exit(); } ?><?php //上传图片   $uptypes=array('image/jpg','image/jpeg','image/png','image/pjpeg','image/gif','image/bmp','appli

java web 上传文件之后如何自动给文件生成缩略图!!!

问题描述 java web 上传文件之后如何自动给文件生成缩略图!!! 已经实现多文件多格式同时上传,如何给上传的每个文件都生成缩略图?方便用户查看! 解决方案 可以看下 IM4JAVA 解决方案二: 可以自己生成缩略图.下面是简要代码:public void decreaseImageSize(String path OutputStream os String mediaType) throws IOException{ try{ File file = new File(path); if

C# 上传文件到FTP- 手动可以运行可以成功-如果用windows计划任务自动执行程序,就会出现上传错误的提示

问题描述 有上传文件到FTP的功能.手动运行程序,可以正常上传到FTP.如果用windows计划任务来自动运行程序,就会出现不能上传文件的提示...publicstaticvoidUploadFile(){foreach(ReportInforiinReportInfoList){try{stringfilename=ri.ReportName+".xls";stringftpServerIP="WWWWWW";FileInfofileInf=newFileInfo