学做网站培训课程介绍

当前位置:

WordPress上传中文名图片自动重命名

在学做网站论坛之前的的建站教程中,我们介绍了如何让wordpress网站支持上传中文图片名的方法,这个是需要通过修改WORDPRESS程序文件才能实现上传中文名图片的效果。

除了这种方法之外,还有下面一种解决wordpress程序不支持上传中文名图片的方法:WordPress上传中文名图片自动重命名。

方法很简单,只需要在自己的wordpress主题函数文件functions.php中添加以下代码:

function wpyou_rename_upload_file_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', 'wpyou_rename_upload_file_prefilter');

这种方法实现的效果和前面介绍的方法结果是一样的,最大的好处是每次更新wp都不用再反复修改程序文件了,但是弊端是上传的图片全部都会重命名。

为了解决这种弊端,需要先检测一下图片名中是否包含中文,如果包含中文就重命名,如果不包含中文,就使用原来的图片名。修改后的代码如下:

//代码来源:学做网站论坛 https://www.xuewangzhan.net/
//WordPress中文名、数字名图片上传自动重命名
add_filter('sanitize_file_name','fanly_custom_upload_name', 5, 1 );
function fanly_custom_upload_name($file){
    $info   = pathinfo($file);
    $ext    = empty($info['extension']) ? '' : '.' . $info['extension'];
    $name   = basename($file, $ext);
    if(preg_match("/[一-龥]/u",$file)){//中文换名
        $file   = substr(md5($name), 0, 20) . rand(00,99) . $ext;//截取前20位MD5长度,加上两位随机
    }elseif(is_numeric($name)){//数字换名
        $file   = substr(md5($name), 0, 20) . rand(00,99) . $ext;//截取前20位MD5长度,加上两位随机
    }
    return $file;
}

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注

在线
客服
手机二维码 手机二维码
返回顶部 返回顶部

温馨提示

为防止临时会话收不到QQ信息,请加QQ好友咨询
论坛客服李欣蓉QQ:2289556365

或者使用微信扫码咨询

x

温馨提示

为防止临时会话收不到QQ信息,请加QQ好友咨询
论坛客服孙丽QQ:2399118408

或者使用微信扫码咨询

x

温馨提示

为防止临时会话收不到QQ信息,请加QQ好友咨询
论坛客服刘淼淼QQ:1135082670

或者使用微信扫码咨询

x

温馨提示

为防止临时会话收不到QQ信息,请加QQ好友咨询
论坛讲师张启亚QQ:2357852508

或者使用微信扫码咨询

x

温馨提示

为防止临时会话收不到QQ信息,请加QQ好友咨询
论坛讲师方重华QQ:1730401718

或者使用微信扫码咨询

x

温馨提示

为防止临时会话收不到QQ信息,请加QQ好友咨询
论坛讲师唐超QQ:909722045

或者使用微信扫码咨询

x

温馨提示

为防止临时会话收不到QQ信息,请加QQ好友咨询
论坛讲师赵鹏QQ:614862774

或者使用微信扫码咨询

x

微信咨询

可使用微信扫下方二维码加好友咨询。

x