只修改文件名而不影响媒体名,步骤:
- 打开您的WordPress网站的主题目录中的functions.php文件(若没有可新建)。 如:<项目名称>/wp-content/themes/<主题名>/functions.php
- 在文件末尾添加以下代码:
// 上传文件只修改文件名而不修改媒体名
add_filter('wp_handle_upload', function ($image_data) {
// 获取上传的文件名
$file_name = basename($image_data['file']);
// 获取上传文件的扩展名
$file_extension = pathinfo($file_name, PATHINFO_EXTENSION);
// 生成新的文件名
$new_file_name = date('dHis') . rand(10, 99) . md5($file_name) . '.' . $file_extension;
// 生成新的文件路径
$new_file_path = $image_data['file'];
$new_file_path = str_replace($file_name, $new_file_name, $new_file_path);
// 重命名文件
rename($image_data['file'], $new_file_path);
// 更新媒体库中的文件路径
$image_data['file'] = $new_file_path;
return $image_data;
});
- 保存并上传functions.php文件。
这段代码声明了一个名为匿名函数,它会在图片上传后被WordPress调用。该函数会获取上传文件的信息,并生成一个新的文件名,然后使用PHP的rename()函数将文件重命名为新的文件名,并更新媒体库中的文件路径,以确保 WordPress 可以正确显示图片。
请注意,这种方法只会更改文件名,而不会更改媒体库中的媒体名。媒体库中的媒体名是从原始文件名中自动生成的,并且只能手动更改。