我们在WordPress网站发布或更新文章的时候,可能是从以前的旧文章(或某个网站的文章)复制粘贴而来,如果每次都要手动替换文中内容的某个关键词,有可能会错漏,所以最好的办法就是在发布或更新文章的时候自动检测并替换,最后保存进数据库中,一劳永逸。
比如我们站点名称以前叫“boke112联盟”,现在为“boke112百科”,那么我在更新以前的旧文章时,希望它自动检测文章内容是否存在“boke112联盟”?若存在就自动替换为“boke112百科”,并保存到数据库中。
想要实现这个目的,操作很简单,只需要将以下代码添加到当前主题的functions.php文件中并保存更新文件即可。
//文章发布或更新时自动替换关键词
add_action('save_post', 'replace_text_in_post');
function replace_text_in_post($post_id) {
// 检查是否是自动保存或修订版本,若是则返回
if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) {
return;
}
if (wp_is_post_revision($post_id)) {
return;
}
// 获取文章内容
$post_content = get_post_field('post_content', $post_id);
// 检测并替换内容
if (strpos($post_content, 'boke112联盟')!== false) {
$new_content = str_replace('boke112联盟', 'boke112百科', $post_content);
// 更新文章内容
wp_update_post([
'ID' => $post_id,
'post_content' => $new_content
]);
}
}
其实,以上代码更着眼于未来,比如以后复制粘贴某篇内容包含有“boke112联盟”的文章,在发布或更新时就自动替换为“boke112百科”。
如果想要修改WordPress网站以前的文章中的某个关键词,如boke112联盟修改为boke112百科,那么只需要进入到phpMyAdmin,然后执行以下SQL语句即可:
UPDATE wp_posts SET post_content = replace(post_content,'boke112联盟','boke112百科');
记得修改以上代码中的wp_posts表前缀wp_为自己网站对应的表前缀。
如果你觉得进入phpMyAdmin直接操作数据库担心出问题,那么你也可以考虑安装一款插件,以后都可以在该插件中查找替换数据库的关键词。具体请参考:
另外,如果你想要替换WordPress网站的某篇文章图片,可以直接在WordPress后台的媒体库中操作。具体可参考:如何修改替换WordPress媒体库图片?推荐Enable Media Replace插件
如果不想更改自己网站数据库的内容,仅仅是实现自动检测文章内容是否含有某个关键词?若有就自动替换为XXX显示,那么可参考:WordPress文章内容敏感词或关键词怎么实现自动屏蔽替换?

















桂公网安备 45010502000016号