WordPress 上传文件按时间重命名

技术文档评论699阅读模式

WordPress是可支持文件中文文件名,可是在有时候在为了一些特殊功能时候,需要文件或者图片为非英文的,如果是文件很多,那一个一个的修改起来会很累,所以可以通过以下两种方法实现上传时将图片重新命名为上传时间格式命名。这两种方法弊端是第一种方法里面两个代码都是修改主题functions.php文件,如果主题更新了又要重新添加代码,第二种是WordPress更新也要重新替换代码。都有利弊,自行权衡。

修改主题文件

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;
}
//wordpress上传文件重命名
function git_upload_filter($file) {
    $time = date("YmdHis");
    $file['name'] = $time . "" . mt_rand(1, 100) . "." . pathinfo($file['name'], PATHINFO_EXTENSION);
    return $file;
}
add_filter('wp_handle_upload_prefilter', 'git_upload_filter');

将上述两种选择其中一种代码添加到主题functions.php模板文件中即可。文章源自飞牛士 FeiNews-https://www.feinews.com/experience/1346.html

修改WordPress程序文件

修改wp的程序文件file.php,在file.php中查找下面这段代码:文章源自飞牛士 FeiNews-https://www.feinews.com/experience/1346.html

$new_file = $uploads[‘path’] . “/$filename”;

把上述代码修改成如下,显示的结果和上面两种的代码一样:文章源自飞牛士 FeiNews-https://www.feinews.com/experience/1346.html

$new_file = $uploads[‘path’] . “/”.date(“YmdHis”).floor(microtime()*1000).“.”.$ext;
文章源自飞牛士 FeiNews-https://www.feinews.com/experience/1346.html文章源自飞牛士 FeiNews-https://www.feinews.com/experience/1346.html
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定