为什么需要在WordPress批量搜索和替换文章内容
比如我们想将文章中的2023全部替换为2024,或者我们想将文章中wordpress全部替换为WordPress。
手动修改费时费力,了解了具体原理后,我们可以通过直接修改数据库的方式来实现批量修改。
如何在WordPress批量搜索和替换文章内容
插件
插件是最方便最快捷的实现方式。
这款插件的作者是WP Engine,业界大大有名的主机服务商,也是另一款建站必备插件ACF的作者。所以还是值得托付的。
软件提供免费版和收费版
免费版能够基本满足需求。这类的插件的原理基本类似,主要通过搜索并替换数据库的方式来实现这个功能。所以在操作之前,安全起见,建议大家还是给网站做个备份。
假设:
将网站所有文章中的文字wahaaha替换为wahaha
将网站所有文章中的链接hahaaha.com替换为hahaha.com

具体使用方法
第一步:安装插件
下载安装Better Search Replace插件

第二步:使用插件
在WordPress后台,Tools > Better Search Replace
Search for中填入需要替换的内容,Replace with中填入替换后的内容
因为这里替换的是文章里的内容,所以表格中建议只选择wp_posts这一个表格就可以了。如果不放心,可以全选。先搜索看下结果。
Run as dry run建议保持勾选。
如果不勾选,会直接搜素替换。

点击Run Search/Replace 搜索并查看结果。

免费版只可以查看搜索结果对应的数据表位置,无法查看具体的内容。如果有这个需求,需要升级到付费版。

确认没问题后,取消勾选“Run as dry run”,然后再次运行Run Search/Replace 就完成修改了。
第三步:确认修改结果
最后回到文章页面检查最终效果。

修改数据库
如果不喜欢安装插件,也可以通过直接修改数据库来实现相同的功能。只不过,直接修改数据库需要格外小心。强烈建议操作前做好备份。
这里以MySQL数据库phpMyAdmin为例
具体使用方法
在phpMyAdmin > SQL 中输入以下命令即可完成内容的替换
UPDATE wp_posts SET post_content = REPLACE(post_content, 'wahaaha', 'wahaha');
UPDATE wp_posts SET post_content = REPLACE(post_content, 'hahaaha.com', 'hahaha.com');

常见问题答疑
总结
其实插件也是通过修改数据库来实现这一目的。通常涉及到数据库的修改,都强烈建议先做好数据库的备份。因为一旦出错,很可能导致很严重的后果。如果使用插件,比如批量修改文章内容,建议只选中posts相关的表格就行,如果全选表格,全部修改,大概率是会出问题的。