很多 WordPress 站长在采集内容或迁移网站后,文章里会残留大量外链图片。这些图片一旦源站失效、防盗链或限速,网站就会出现裂图。
这个工具可以在后台“工具 → 外链图片本地化”中一键运行,自动扫描文章内容里的外链图片,将其下载到 WordPress 媒体库,并把文章里的图片 URL 替换成本地链接。
只需将以下代码添加进去functions.php即可食用
主要特点:
支持 src、data-src、data-original、data-lazy-src 等常见写法
自动分批处理,从 ID 0 开始覆盖全站文章
内置常见图床防盗链 Referer 匹配(新浪、微信、知乎、头条等)
自动跳过站内图片,支持中文 URL、无扩展名 URL
每篇文章处理后会打标记,避免重复处理
实时进度条和失败日志,方便定位问题
适用场景:网站迁移、采集内容后本地化、外链图床不稳定、需要统一管理图片。
注意:操作前请备份数据库和 wp-content/uploads/ 目录;采集他人图片请确认版权授权。
工作流程
后台“工具 → 外链图片本地化”
点“开始自动本地化”
前端 JS 自动循环调用 admin-ajax.php,每次处理 20 篇
每处理一篇,打上 _lei_localized 标记,不会重复处理
全部处理完自动停止,显示累计统计
处理速度与超时
每批 20 篇,批间 300ms
300 多篇文章大约几分钟跑完
如果某批超时,把 $batch_size = 20; 改成 10 或 5
跑的过程中不要关页面
要素 说明
| 核心功能 | 外链图片本地化 / 远程图片采集 |
| 自动化 | 自动批量、无需手动点 |
| 范围 | 全站 / ID > 0 / 指定文章类型 |
| 技术亮点 | 防盗链 Referer、媒体库入库、替换链接 |
| 适用场景 | 迁移、采集、外链失效 |
| 风险提示 | 备份、版权、超时 |
遇到新图床 403,在数组里加一行即可:
'新域名.com' => 'https://新域名.com/',
有些图床反而允许“没有 Referer”的请求。可以测试:
// 把 Referer 设为空字符串
'Referer' => '',
失败日志怎么读
| 日志 | 含义 | 处理 |
|---|---|---|
HTTP 403 | 防盗链 | 见下面防盗链章节 |
HTTP 404 | 图片已删 | 换源或删图 |
HTTP 429 | 请求太频繁 | 把批间延迟改大 |
cURL error 6 | DNS 解析失败 | 改服务器 DNS 或 /etc/hosts |
cURL error 7 | 连不上 | 服务器网络问题 |
cURL error 28 | 超时 | 网络慢或被墙 |
cURL error 60 | SSL 证书问题 | 代码已 sslverify=false,应该已修 |
非图片类型:text/html | 返回网页 | 防盗链或被墙 |
写入媒体库失败 | 文件格式不允许 | 看具体错误 |
注意事项
操作前备份数据库和 wp-content/uploads/
处理 300+ 篇文章,跑一次可能几分钟,别关页面
采集他人图片有版权风险,确认授权
图片在自定义字段、特色图、CSS 背景里,本代码不处理
图片多时建议把 $batch_size 调小,避免超时
想只处理某范围,改 LEI_MIN_POST_ID 即可
想只处理某文章类型,把 SQL 里 post_type='post' 改成你的类型
