php - 替换所有 wordpress 帖子中的单词
问题描述
我正在使用插件从 wordpress 中的所有帖子中删除链接。我想升级代码,这样它不仅会删除链接,还会替换选定的单词。我自动导入内容,有时它包含“坏词”,我想我可以用更适合儿童的东西替换这些坏词。但是我的 php 是菜鸟级别的,当我看到这段代码时,我真的很困惑。
我认为这应该是一个非常容易解决的问题,因为我应该能够只复制部分代码,并在复制中选择一个目标“坏”字和一个替换“好”字。但我的技能碰壁了。
function remove_links_from_post($post){
$post_content = stripslashes($post["post_content"]);
if(!preg_match_all("/(<a.*>)(.*)(<\/a>)/ismU",$post_content,$outbound_links,PREG_SET_ORDER)){
return $post;
}
foreach($outbound_links as $key => $value){
preg_match("/href\s*=\s*[\'|\"]\s*(.*)\s*[\'|\"]/i",$value[1],$href);
if((substr($href[1],0,7)!="http://" && substr($href[1],0,8)!="https://") || substr($href[1],0,strlen(get_bloginfo("url")))==get_bloginfo("url")){
unset($outbound_links[$key]);
}else{
$post_content = str_replace($outbound_links[$key][0],$outbound_links[$key][2],$post_content);
}
}
$post["post_content"] = addslashes($post_content);
return $post;
}
add_filter("wp_insert_post_data", "remove_links_from_post");
?>
解决方案
查看此免费工具以在 Wordpress 数据库中搜索/替换: https ://interconnectit.com/products/search-and-replace-for-wordpress-databases/
由于数据存储为序列化字符串,因此使用起来比较麻烦。该实用程序可以在这些字符串中搜索并进行替换,而不会破坏序列化。
我经常使用它并取得了很好的成功。
推荐阅读
- python - 网络爬虫运动-Python Beautiful Soup 参考
- amazon-iam - 授予用户创建组织权限的 SLR 策略
- vba - vba 列表框,文本框,以及更新范围
- css - 停止自动调整创建新(或删除)列,因此它不会创建空白(或项目数可被列数整除)(css 网格)
- html - 如何使 Angular Material 的按钮切换全宽但左对齐其内容?
- javascript - 移动导航没有响应
- javascript - 正则表达式从 HTML 代码的开头获取文本
- cron - 在覆盆子 crontab 上运行 cronitor
- python - Python - 如何使用 xlwt 根据在不同电子表格中使用 xlrd 找到的结果写入新的电子表格行?
- c# - 如何控制组合框结果在 switch-case 中何时为空