WordPress发布或更新文章时怎么自动替换关键词并保存进数据库?

WordPress国产主题推荐

我们在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文章内容敏感词或关键词怎么实现自动屏蔽替换?

5/5 - (1 vote)
文章创作不易,期待您的评分

本文地址:https://boke112.com/article/wordpress-auto-replace-posts.html

版权声明:本文为原创文章,版权归 boke112百科 所有,欢迎分享本文,转载请保留出处!发布此文是出于传递更多信息之目的,若有来源标注错误或侵犯了您的合法权益,请联系我们,确认后马上更正或删除,谢谢!
wu