wordpress修改图片域名

你要的是只改附件(uploads)资源域名的 SQL,对吧。

这里给你一套“最安全、最精准”的版本。


1. 只改文章里的图片(post_content)

UPDATE wp_posts
SET post_content = REPLACE(
    post_content,
    'http://old.com/wp-content/uploads/',
    'http://new.com/wp-content/uploads/'
);

如果你是 HTTPS:

UPDATE wp_posts
SET post_content = REPLACE(
    post_content,
    'https://old.com/wp-content/uploads/',
    'https://new.com/wp-content/uploads/'
);

2. 修改附件 GUID(建议只改 uploads)

UPDATE wp_posts
SET guid = REPLACE(
    guid,
    'http://old.com/wp-content/uploads/',
    'http://new.com/wp-content/uploads/'
)
WHERE post_type = 'attachment';

3. 如果你想更稳(推荐这个)

避免误伤其他 URL,只改 uploads:

UPDATE wp_posts
SET guid = REPLACE(
    guid,
    'old.com/wp-content/uploads/',
    'new.com/wp-content/uploads/'
)
WHERE post_type = 'attachment';

4. 如果还有“缩略图 / 插件存储路径”

(可选,但很多站需要)

UPDATE wp_postmeta
SET meta_value = REPLACE(
    meta_value,
    'old.com/wp-content/uploads/',
    'new.com/wp-content/uploads/'
);

5. 最推荐执行顺序(重要)

① wp_posts.post_content
② wp_posts.guid (只 attachment)
③ wp_postmeta(如果确认有旧域名)

6. 你这种迁移场景的关键点

你现在的情况其实是:

图片文件已经在服务器
只是数据库域名没统一

所以不需要动 uploads 文件夹,只修数据库即可。


7. 一句话总结

只做这两个核心 SQL 就够了:

UPDATE wp_posts
SET post_content = REPLACE(post_content,'old.com/wp-content/uploads/','new.com/wp-content/uploads/');

UPDATE wp_posts
SET guid = REPLACE(guid,'old.com/wp-content/uploads/','new.com/wp-content/uploads/')
WHERE post_type='attachment';

上一篇
下一篇