将wordpress评论内容转义为HTML实体

11-21 | 夜光 | IT记录

wordpress已经默认过滤了非管理员评论的很多标签,只保留文本。对于允许的标签,所有人评论显示时都是被浏览器解释过的正常html内容;对于不允许的标签,管理员评论仍然显示正常,非管理员评论存储时就已被去掉那些标签(只保留文本)。下面想做的是在评论显示时将所有人评论转义为HTML实体,这并不改变评论实际存储在数据库中的内容。对于管理员所有标签被转义为HTML实体;对于非管理员本来该被吞掉的标签依然被吞,本来允许的标签被转义为HTML实体。

在主题functions.php文件中,加入以下代码即可:

function html_escape_entities($comment){
	$comment = htmlspecialchars($comment,ENT_QUOTES);
	return $comment;
}
add_filter('comment_text','html_escape_entities');

其中ENT_QUOTES参数是指:转义双引号与单引号
后面那个参数其它常用的还有:
ENT_COMPAT (默认)只转义双引号
ENT_NOQUOTES 双引号与单引号都不转义

本文标签:
本文链接: escape-the-wordpress-comments-as-html-entities/
版权所有: 玻璃泉, 转载请注明本文出处。