对于 WordPress 上传图片附件命名的问题,个人是趋向于用规则重新给图片命名,这样方便后期图片的迁移和管理。这里给大家一个 WordPress小技巧,可以让WordpPress 上传图片的时候,自动根据规则修改图片地址名称。
自动按日期重命名
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
<?php /* Plugin Name: WordPress 上传图片自动更名 Plugin URI: http://www.aips.me/wordpress-upload-pictures-renamed.html Description: WordPress 技巧:上传图片自动按日期时间更名 Version: 0.1 Author: xiaowudesign Author URI: http://www.aips.me/ */ function huilang_wp_handle_upload_prefilter($file){ $time=date("Y-m-d"); /*注:上面的代码修改图片改名称的机制为“年月日+随机数字”,如果你想要加上时分秒,请修改为 $time=date("Y-m-d"); 为 $time=date("Y-m-d H:i:s"); */ $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”,不然会导致网站崩溃)。
用MD5加密生成数字并重命名
名称规则是由系统自动生成的一个32位的MD5加密文件名,由于默认生成的32位文件名有点长,所以使用substr(md5($name),0,20)截断将其设置为20位。
1 2 3 4 5 6 7 8 |
//wordpress上传文件重命名 function rename_filename($filename) { $info = pathinfo($filename); $ext = emptyempty($info['extension']) ? '' : '.' . $info['extension']; $name = basename($filename, $ext); return substr(md5($name), 0, 20) . $ext; } add_filter('sanitize_file_name', 'rename_filename', 10); |