网站时间长了,我们更新内容的时候上传的图片有可能会出现重名,那么有没有办法可以防止图片重名呢?本文小编和大家分享一段代码,可以有效防止在上传图片的时候出现重名的情况。
在functions.php文件中添加以下代码:
add_filter('wp_handle_upload_prefilter', 'custom_upload_filter');
function custom_upload_filter($file) {
// 获取上传文件名
$filename = $file['name'];
// 检查当前主题目录下是否存在同名文件
$uploads = wp_upload_dir();
$upload_path = $uploads['path'] . '/';
$basename = pathinfo($filename, PATHINFO_FILENAME);
$extension = pathinfo($filename, PATHINFO_EXTENSION);
$i = 1;
while (file_exists($upload_path . $filename)) {
// 若存在同名文件,则在文件名后面加上数字递增
$filename = $basename . '-' . $i . '.' . $extension;
$i++;
}
// 更新文件信息
$file['name'] = $filename;
return $file;
}
以上代码使用了wp_handle_upload_prefilter
过滤器来拦截上传操作,并通过检查当前主题目录下是否存在同名文件,如果存在则在文件名后面加上数字递增。最后更新文件信息并返回。这样即可实现WordPress上传图片不重名的优化。