乌徒帮技术范儿WordPressWordPress开发 › wordpress评论内容格式化,去除链接、显示php代码

wordpress评论内容格式化,去除链接、显示php代码

分类:WordPress开发

今天对乌徒帮的评论稍稍观察了一下,虽然之前对评论的内容做了一些处理,但还是在显示中出了问题,主要表现在评论中如果存在html代码,就会被解析,导致内容错乱,php代码显示不出来或显示错误,和留言的朋友交流起来不方便。本文就来解决这个问题。

在主题文件的functions.php中加入如下的代码:

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'] );
$incoming_comment['comment_content'] = str_replace('"','"',$incoming_comment['comment_content'] );
return $incoming_comment;
}
function plc_comment_display( $comment_to_display ) {
$comment_to_display = htmlspecialchars($comment_to_display);
$comment_to_display = str_replace(''',"'",$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);

即可完成相应的功能,这两个函数和add_filter配合之后,可以实现如下:

1、在写入(发布)评论时,通过plc_comment_post函数,将单引号、双引号和</>等符号进行转码保存到数据库中;

2、在前台通过comment_text()等函数显示评论内容时,将被转码的符合又转回来,同时又通过一个htmlspecialchars函数,将这些符号转为例如&apos等,显示在源代码中,而屏幕上就显示为单引号、双引号了,这样就可以实现对<a>标记的屏蔽,同时对<和>进行了转码,显示php代码也没有问题。

填写个人信息,赶快回复吧!