之前发表过一篇 WordPress 图片路径批量替换方法 的文章,简单介绍了 WordPress 图片路径批量替换的方法,但这个方法仅限于修改图片部分路径,比如替换域名。今天为大家简单介绍一下网站图片由 WordPress 整体迁移到 Chevereto 图床的实现方法。
整体思路
使用下载工具将图片批量下载下来,然后将图片批量上传到 chevereto 图床,最后根据对照关系再批量修改图片的 URL。
具体实现
1、获取图片URL
使用 SQL 语句获取所有图片的 URL,列名称为 guid。假设总共有1000 张图片,则可以获取到 1000 个 URL。
SELECT * FROM `wp_posts` WHERE post_type='attachment'
2、批量下载图片
将这 1000 个 URL 粘贴到下载工具(比如迅雷)中,将图片批量下载到本地,比如 /opt 目录。
3、批量上传图片
将 /opt 目录下的 1000 张图片上传到 chevereto 图床,chevereto 图床支持批量上传。
4、寻找对照关系
可以通过 SQL 语句查询和比较得出图片在 wordpress 中和在 chevereto 中的 URL 对照关系。假设某张图片在 wordpress 中的URL为:
https://www.pieruo.com/wp-content/uploads/2020/05/gravatardefault.jpg
而在 chevereto 中的URL为:
https://oss.pieruo.com/2020/07/26/e7Ir.jpg
这样,就得到了这一张图片 URL 的对照关系,同样,可以得到另外 999 张图片的 URL 对照关系。
5、建立对照关系
为了方便起见,可以将上述 wordpress 中的 URL 另存为 a.txt(每行一条,共 1000 行),将 chevereto 中的 URL 另存为 b.txt(每行一条,共 1000 行),注意这两个文件中的内容顺序要对应。
a.txt 文件内容如下:
https://www.pieruo.com/wp-content/uploads/2020/05/gravatardefault.jpg https://www.pieruo.com/wp-content/uploads/2020/06/up1.png https://www.pieruo.com/wp-content/uploads/2020/07/a566652de1c.jpg ...
b.txt 文件内容如下:
https://oss.pieruo.com/2020/07/26/e7Ir.jpg https://oss.pieruo.com/2020/07/26/MFj.jpg https://oss.pieruo.com/2020/07/26/Idr.jpg ...
6、生成SQL语句
通过脚本读取上述两个文件的内容并生成下面的 SQL 语句:
UPDATE wp_posts SET post_content = REPLACE( post_content, 'https://www.pieruo.com/wp-content/uploads/2020/05/gravatardefault.jpg', 'https://oss.pieruo.com/2020/07/26/e7Ir.jpg' ); UPDATE wp_posts SET post_content = REPLACE( post_content, 'https://www.pieruo.com/wp-content/uploads/2020/06/up1.png', 'https://oss.pieruo.com/2020/07/26/MFj.jpg' ); UPDATE wp_posts SET post_content = REPLACE( post_content, 'https://www.pieruo.com/wp-content/uploads/2020/07/a566652de1c.jpg', 'https://oss.pieruo.com/2020/07/26/Idr.jpg' ); ...
7、执行SQL语句
然后在数据库中批量执行上述 SQL 语句,可以分 10 次执行,每次执行 100 条。这样就可以将 wordpress 文章中旧图片 URL 替换为新图片 URL。
注意事项
- 本文中提到的 SQL 操作存在一定的风险,操作前需要备份数据库。
- 具体操作起来可能有一定的难度,大家可以自行研究一下。
结束语
本文中描述的方法不仅仅适用于网站图片由 wordpress 整体搬迁到 chevereto 图床,也适合于图片由一个图床搬迁到另一个图床,以及图片由 chevereto 图床搬迁到 wordpress,大家可以根据实际情况调整即可。如果有任何意见或建议,欢迎在下方评论处留言。