首页    >    新闻资讯    >   让评论模块支持更多 HTML 标签

让评论模块支持更多 HTML 标签

WordPress 原生的评论模块内容,支持使用 HTML 标签来增强评论内容的格式和效果。但是这肯定会带来一些安全隐患,特别是评论这种随便一个浏览者都可以提交数据的地方,容易产生跨站攻击(XSS),所以 WordPress 系统严格的限制了评论模块可以使用的 HTML 标签。默认的情况下,只支持:a、abbr、acronym、b、blockquote、cite、code、del、em、i、q、strike、strong 这几个标签和对应的相关属性。

这些标签肯定是远远不够用的,如果是技术博客,评论往往需要包含代码,那么可能就需要添加 pre 标签的支持,如果想要评论中可以引用图片,那么需要 img 标签的支持。本文就是来讲解如何在评论模块中增加更多 HTML 标签的支持。

WordPress 允许的标签和属性

WordPress 出于安全考虑,严格的限制了文章和评论等可编辑内容支持的 HTML 标签类型和标签的属性。具体的内容可以看:wp-includes/kses.php 这个文件,里面有两个全局数组变量 $allowedposttags 和 $allowedtags ,这两个数组变量就包含了允许的 HTML 标签,每个标签的键值又是一个数组,记录了这个标签常用的属性。例如:

$allowedtags = array(
'a' => array(
'href' => true,
'title' => true,
));

上面这个数组的含义就是支持 a 标签以及对应的 href、title 属性。

让 WordPress 评论支持更多标签的方法

思路很简单,先按照上面的格式,声明一个标签信息数组,然后 hook 勾到 WordPress 上面。例如想要增加 pre 标签的支持,先声明下面数组:

function allowedtags_pre() {
global $allowedtags;
$allowedtags['pre'] = array('class'=>true,);
}

这个函数的意思就是:先声明一下 $allowedtags 这个全局变量,然后下面就可以为这个全局变量增加一个新键值 pre,由于 pre 标签可能需要增加 class 属性,所以我们同时增加它的 pre 标签支持。下面 hook 一下,add_action 到 comment_post 就可以把刚刚修改的内容关联进 WordPress 了:

add_action('comment_post', 'allowedtags_pre');

这样,就相当于为 $allowedtags 新增加了 pre,把这两段代码放进主题目录下的 functions.php 文件中或者写成插件,然后就可以实现了。

作者:潜行者m

来源:我爱水煮鱼

分类:新闻资讯

标签:, ,

* 版权声明:作者WordPress啦! 转载请注明出处。

kadıköy escortbostancı escortataşehir escortbostancı escortmaltepe escortmaltepe escortanadolu yakası escortanadolu yakası escortataşehir escortbostancı escortistanbul escortkartal escortbostancı escortkartal escortkadıköy escortpendik escortpendik escortmaltepe escortataşehir escortmaltepe escortmaltepe escortanadolu yakası escortkadıköy escortataşehir escortkadıköy escortataşehir escortümraniye escortataşehir escortkartal escortescort bayankartal escortpendik escortkartal escortgöztepe escorttuzla escortkadıköy escortkartal escortkadıköy escortmaltepe escortkartal escortataşehir escortmaltepe escortbostancı escortkartal escortpendik escortkadıköy escortataköy escortavrupa yakası escortataköy escortbakırköy escortbeylikdüzü escorttaksim escorthalkalı escortetiler escortbodrum escortmalatya escortankara escortantalya escortmersin escortantalya escortHacklinkHacklinkshellwso shellwso shellgörüntülü sohbettipobetbahis siteleri