在您的WordPress主题的functions.php文件中添加以下代码,以启用远程图片下载并保存到本地的功能:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
//WordPress自动本地化文章中的远程图片
function custom_upload_remote_images($content) {
// 修正正则表达式:转义单引号并优化匹配模式
preg_match_all('/<img&#91;^>]*src\s*=\s*[\'"]([^\'"]+)[\'"][^>]*>/i', $content, $matches);

if (!empty($matches[1])) {
foreach ($matches[1] as $image_url) {
// 获取远程图片(建议添加错误处理)
$image = @file_get_contents($image_url);
if ($image === false) continue; // 跳过获取失败的图片

// 生成本地文件名
$upload_dir = wp_upload_dir();
$filename = sanitize_file_name(basename($image_url)); // 安全处理文件名
$local_image_path = $upload_dir['path'] . '/' . $filename;

// 保存图片到本地
file_put_contents($local_image_path, $image);

// 替换文章中的远程图片链接
$content = str_replace($image_url, $upload_dir['url'] . '/' . $filename, $content);
}
}
return $content;
}
add_filter('the_content', 'custom_upload_remote_images');

保存并激活您的主题

然后,您可以在文章中添加远程图片链接,当您发布或更新文章时,上述代码将自动将它们下载并保存到本地服务器。

主流优秀插件推荐

qqworld-auto-save-images

Smart Auto Upload Images