WordPress批量替换文章内容文字方法分享:
注意:前排提醒,修改数据有风险,最好提前备份,备份,备份。重要的事说三篇。
有时候我们网站更换品牌词或者利用原数据做一个新网站之类的情况下,
就需要把旧文章中的一些固定文字替换成新的,如果一篇一篇改肯定是不现实的。
我们可以使用操作数据库或者代码的方式来批量替换掉文章中的文字。
方法一:添加代码替换
function replace_text_in_posts() {
global $wpdb;
// 查询需要更新的文章
$posts = $wpdb->get_results("SELECT ID, post_content FROM $wpdb->posts WHERE post_type = 'post'");
foreach ($posts as $post) {
// 检查文章内容是否包含"旧文字"
if (strpos($post->post_content, '旧文字') !== false) {
$new_content = str_replace('旧文字', '新文字', $post->post_content);
// 更新文章内容
$post_data = array(
'ID' => $post->ID,
'post_content' => $new_content,
);
wp_update_post($post_data);
}
}
}
// 调用函数
replace_text_in_posts();
在上面的代码中,首先通过查询获取所有文章的内容,然后使用 str_replace() 函数将文章内容中的’旧文字’替换为’新文字’,最后通过 wp_update_post() 函数更新文章内容。
你只需要把旧文字改为被替换的文字,新文字改成你要替换的文字就可以了,用完后记得删除。
然后将上面代码插入至主题文件functions.php即可。
编辑当前主题的 functions.php 文件
WordPress网站后台 – 仪表盘 – 外观 – 主题文件编辑器(有的版本可能显示是编辑)>选择主题functions.php文件>添加代码>保存文件:
注意和推荐搭配
上面添加到主题functions.php文件的这种方式添加的功能代码只在当前使用主题下有作用,如果你切换了主题,那么这个时候就会失效,所以要注意。
不过这类代码通常是一次性使用,使用完我们要删除。
推荐你使用WPCode 代码片段插件,你可以直接将上述代码添加为一个新的代码片段开启,使用完之后选择关闭这个功能代码就行,这个插件它的代码库中还有许多使用的功能代码片段,你可以选择你用得上的导入就可以,关于这个插件的介绍推荐你看我之前文章:WordPress代码片段插件 WPCode。
方法二:操作phpmyadmin查询修改
wordpress数据库中wp_posts表格post_content字段中存储的是文章正文内容。
关于WordPress数据库各个表的详情介绍,你可以看这里:WordPress数据表结构详解
我们可以通过操作phpmyadmin使用其中的查找替换功能,即可将文章中的文字进行替换。
操作步骤如下:
首先登录数据库,然后选择你自己的当前网站的数据库
- 之后选择wp_posts表格
- 点击搜索
- 再点击查找和替换
- 输入被替换的关键词和要替换的关键词
- 字段选择post_content。
- 点击执行即可。
方法三:使用插件批量替换
WordPress中内容搜索替换的插件挺多,我这里就推荐两个,都非常的简约好用,你根据自己的需求选择一个就行了,它们分别是:
- Better Search Replace
- WordPress插件库地址:Better Search Replace – WordPress plugin | WordPress.org
- WPReplace内容字符替换插件
- WordPress插件库地址:WPReplace内容字符替换插件 – WordPress plugin | WordPress.org
安装这种基础操作我就不说了,下面简单介绍和演示两个插件
Better Search Replace插件使用
Better Search Replace是WP Engine旗下的一款插件,根据WordPress插件库中的统计,有效安装数量超过1百万。
Better Search Replace可以直接选择想要替换的数据表,如果你要替换的内容不单单是文章字段,那么WPReplace插件目前就不行了,Better Search Replace就可以满足你的需求。它还支持搜索区分大小写,通过试运行的方式查看会更新多少字段:
Better Search Replace插件安装启用后,在WordPress后台》工具》Better Search Replace进行使用,界面如下:
如果你要修改文章内容,则选择我们前面提到的wp_posts表即可,wp_这个是你数据表的前缀,你安装WordPress时候设置的是什么就是什么,小白伙伴不要疑惑…
WPReplace插件使用
WPReplace是国人开发的一款的内容替换插件,支持替换的字段较少,不过对于文章标题:WordPress批量替换文章内容文字这个需求,是足够了。
WPReplace插件安装启用后,在WordPress后台》工具》WPReplace设置进行使用,界面如下:
一目了然,我想不需要我再解释什么就能看懂怎么用了。
动态替换文章内容
在有些时候,你不想修改文章实际的内容,但是又想在前端显示的时候把特定文字替换,就可以把下面的代码加入的你主题的functions.php文件或者是WP code插件中使用。
function replace_text_in_content($content) {
// 定义要替换的旧文字和新文字
$old_text = '特定文字';
$new_text = '新的文字';
// 执行替换
$content = str_replace($old_text, $new_text, $content);
return $content;
}
add_filter('the_content', 'replace_text_in_content');
上面这段代码不会直接修改实际数据库中的内容。replace_text_in_content
函数只是对文章内容进行临时的替换操作(通过WordPress的add_filter函数将replace_text_in_content函数应用到the_content过滤器上。过滤器的作用是在内容显示之前对内容进行处理,而不是直接修改数据库中的内容。当WordPress加载文章内容时,会依次应用已注册的过滤器,包括the_content过滤器。在这个过程中,replace_text_in_content函数会被调用来处理文章内容),并在显示文章内容时应用这个替换。
那么以上就是几种WordPress批量替换文章中的文字的方法,当然也还有其他方法,不过我们随便选择一种进行替换就可以了,自己觉得那个简单方便就那个就行。