前两天接到客户反应,网站收到很多莫名其妙的评论,评论的内容是一大堆html代码,在前台显示的其实是一段广告代码,为此客户非常烦恼,其实遇到这种情况直接在评论提交的时候把html代码过滤下即可,下面是当时的处理方法:


function plc_comment_post( $incoming_comment ) {
  
  
        $incoming_comment['comment_content'] = htmlspecialchars($incoming_comment['comment_content']);
  
        $incoming_comment['comment_content'] = str_replace( "'", ''', $incoming_comment['comment_content'] );
  
        return( $incoming_comment );
}
  
function plc_comment_display( $comment_to_display ) {
  
        $comment_to_display = str_replace( ''', "'", $comment_to_display );
  
        return $comment_to_display;
}
  
add_filter( 'preprocess_comment', 'plc_comment_post', '', 1);
add_filter( 'comment_text', 'plc_comment_display', '', 1);
add_filter( 'comment_text_rss', 'plc_comment_display', '', 1);
add_filter( 'comment_excerpt', 'plc_comment_display', '', 1);

只需要将以上代码加入到当前使用的主题的functions.php文件即可,这样wordpress就会在收到评论的时候自动把评论中的html代码过滤掉~