【zz】禁用wordpress评论的HTML标记

wordpress默认的评论可以包括各种HTML标记语言,如超链接、加粗加斜、表单等等,这是一个不错的支持功能,但又是一个很坏的支持功能,很多时候出于安全考虑及避免被垃圾评论干扰,我们就很有必要禁止评论中的html标记。

解决方法:可参考wordpress官方文档

如果想禁用评论中的所有HTML代码

打开博客当前使用的主题目录下的functions.php,在将第一个 <?php 替换成:

<?php
function comment_code_filter($incoming_comment) {
$incoming_comment = htmlspecialchars($incoming_comment,ENT_QUOTES);
return $incoming_comment;
}
add_filter( ‘comment_text’,’comment_code_filter’);
add_filter( ‘comment_text_rss’,’comment_code_filter’);

关于htmlspecialchars函数可以查看php文档,或者在此查看htmlspecialchars() 函数说明。 以上方法是将评论内容中的代码转义,这样浏览器就不解释这部分代码了,代码也不会起任何作用,但可以直接看到评论中的代码。这么改的好处是可以在评论中展示代码,如果你希望去除所有代码标签,只留下文字内容,请将以上代码改成如下:

<?php
function comment_code_filter($incoming_comment) {
$incoming_comment = strip_tags($incoming_comment);
return $incoming_comment;
}
add_filter( ‘comment_text’,’comment_code_filter’);
add_filter( ‘comment_text_rss’,’comment_code_filter’);

关于strip_tags函数同样可以自己去查看PHP文档,或者在此查看strip_tags()函数说明

保存文件后,你就可以看到效果了,这个可以参看本站!

如果想允许部分HTML

可以在wp-includes文件夹下的kses.php文件中设置是否可以在评论中使用HTML标签。

在文本编辑器中打开kses.php文件,找到文件最上方的HTML标签列表。每个HTML标签都单独成行,构成一个合法标签的PHP数组。以tt///tt开始的标签行或被标注或被禁用,因此这些标签实际上指明了评论中不允许出现的HTML标签。

为了阻止人们在评论中使用HTML,可编辑kses.php文件,在列表相应标签行的开始部分添加tt///tt,使之按自己的意志接收或禁止特定HTML标签。如果不希望任何HTML标签出现在评论中,可标注所有允许HTML标签的标签行。完成修改时记住保存文件。
注意:不标注HTML标签,直接删除自己不需要的标签行也可以达到同样的效果,但删除前可保留标签列表以便将来再次激活。
 

原文参考:http://blog.cx125.com/disable-wordpress-comments-html/