为什么拦截这些内容
第一点,大部分搜索引擎的算法,只会收录文明有质量,是原创的内容。假如网站含有大量无意义,违规词敏感词,会导致网站的文章不仅不收录,排名还会疯狂掉。
第二点,大多数平台都会封锁违规链接,网站的内容有违规内容,在那些平台会直接提示违规,被拦截。这对推广,分享有很大的限制,问题严重。
![图片[1]-wordpress子比主题增加无意义及违规评论拦截功能-王先生笔记](https://wxsnote.cn/wp-content/uploads/2023/11/20231126120910158-image.png)
使用正则拦截无意义评论
正则表达式,又称规则表达式,是计算机语言中用于检索匹配指定内容的规则,我们可以依靠正则表达式匹配筛选不需要被发布的评论,以此拦截无意义内容,过滤敏感词,提升网站内容质量,保护网站形象和用户体验。
演示一段拦截未含有中文评论的代码
以下代码实现了评论中未含有中文时,不继续提交到数据库,并提示原因
// 验证评论是否包含汉字
if ( !preg_match( '/[一-龥]/u', $commentdata['comment_content'] ) ) {
if ( empty( $error_msgs ) ) { //检查数组是否为空,如果是,则添加该错误消息,否则忽略该错误消息,只有第一个条件的错误消息会被输出
$error_msgs[] = '评论必须包含汉字!';
}
}
![图片[2]-wordpress子比主题增加无意义及违规评论拦截功能-王先生笔记](https://wxsnote.cn/wp-content/uploads/2023/11/20231126121253102-image.png)
代码说明
判断拦截代码说明:
//正则表达式拦截1
if ( !preg_match( '《正则表达式》', $commentdata['comment_content'] ) ) {
if ( empty( $error_msgs ) ) { //检查数组是否为空,如果是,则添加该错误消息,否则忽略该错误消息,只有第一个条件的错误消息会被输出
$error_msgs[] = '《消息提示》';
}
}
//正则表达式拦截2
if ( !preg_match( '《正则表达式》', $commentdata['comment_content'] ) ) {
if ( empty( $error_msgs ) ) { //检查数组是否为空,如果是,则添加该错误消息,否则忽略该错误消息,只有第一个条件的错误消息会被输出
$error_msgs[] = '《消息提示》';
}
}
代码中,所有被《》包含的内容,都可以自定义,替换内容后,将《》删除
preg_match函数前!时,代表不匹配;
preg_match函数前!时,代表匹配
如果正则表达式中需要匹配文字,也就是UTF-8类字符,必须在正则表达式后加u,否则将无法正确匹配;还有需要根据PHP语言的版本编写对应的正则表达式,因为每种代码语言的正则表达式的表示有所不同,网络上有专门的教程可以学习。
在线工具:正则表达式测试工具
错误通知代码说明:
// 如果有错误信息,则输出到前端
if ( ! empty( $error_msgs ) ) {
wp_send_json( array( 'error' => 1, 'msg' => $error_msgs ) ); //修改此处代码,以适用于非子比主题的其他主题
}
通过向前端输出json数据调用前端通知弹窗,$error_msgs是错误信息
常用的正则表达式
匹配日文,如:こんにちは,私は
![图片[3]-wordpress子比主题增加无意义及违规评论拦截功能-王先生笔记](https://wxsnote.cn/wp-content/uploads/2023/11/20231126123917227-image.png)
建议使用匹配,含有日文就拦截
/[ぁ-ん]+|[ァ-ヴ]+/u
匹配中文,如:你好,我是,你
![图片[4]-wordpress子比主题增加无意义及违规评论拦截功能-王先生笔记](https://wxsnote.cn/wp-content/uploads/2023/11/20231126124001162-image.png)
建议使用!,这样评论中没有中文就会拦截
/[一-龥]/u
wordpress不影响主题在线更新的方法
第一步:在主题根目录下找到functions.php文件
第二步:在functions.php文件中最下行增加下面的代码
拦截敏感词和违规词
以下是拦截敏感词的代码,你可以将此代码手动加入到输出错误提示代码前
同时你需要将敏感词库放在网站目录中(如主题根目录),txt词库中的词需要使用英文逗号分割,词库可以在下面这个文章下载
1.宝塔如下图配置(看自己的路径)
![图片[6]-wordpress子比主题增加无意义及违规评论拦截功能-王先生笔记](https://wxsnote.cn/wp-content/uploads/2023/11/20231126135052985-image.png)
2.Nginx可以在网站配置文件中添加以下内容(看自己的路径)
location ~* ^/wp-content/themes/zibll/.*.(txt)$ {
deny all;
}
总结
通过给评论增加正则表达式过滤和敏感词库过滤功能,我们可以有效拦截无意义和违规敏感词评论的发布,提升网站内容的质量,保护网站形象和用户体验。希望王先生笔记提供的方法能够帮助到所有的wordpress站长。
2026-01-13 14:22:12,某些文章具有时效性,若有错误或已失效,请在下方留言或加入QQ群:
399019539 联系群主反馈。注意一些链接无法访问可能是你网络的原因,如Github,并非资源地址失效。
登录后可快速点此处反馈,点击登录

![图片[5]-wordpress子比主题增加无意义及违规评论拦截功能-王先生笔记](https://wxsnote.cn/wp-content/uploads/2024/06/20240603211245906-image.png)










请登录后查看评论内容