默认情况下,WordPress 评论表单允许用户在评论中包含基本的HTML标签,这包括<p>,
<br>,
<strong
>
等等。在大多数情况下,这些基本标签足以添加基本格式。但对于某些网站,可能需要更多标签,才能实现需要的功能。
例如,在一个服务器配置分享网站上,用户需要通过评论分享 Apache 的 .htaccess 代码。但由于 WordPress 允许的 HTML 标签有限,当用户试图分享包含 Apache 标记(如<IfModule>、
<Directory
>
maybe<VirtualHost>
等
)
的评论时,
WordPress 评论过滤系统就会
删除这些标记。任何不允许的标记(无论是 HTML 标记还是其他标记)这会享受到这个待遇。
为了去掉这个限制,WordPress 提供了一种简单的方法来自定义允许的评论标记,在上面的情况中,我们可以添加以下函数来允许用户在评论中添加需要的标签:
function wprs_add_allowed_tags() {
global $allowedtags;
$allowedtags['p'] = array('class' => true, 'id' => true);
$allowedtags['ul'] = array('class' => true, 'id' => true);
$allowedtags['ol'] = array('class' => true, 'id' => true);
$allowedtags['li'] = array('class' => true, 'id' => true);
$allowedtags['pre'] = array('class' => true, 'id' => true);
$allowedtags['a'] = array('class' => true, 'id' => true, 'title' => true, 'data-url' => true, 'data-date' => true, 'data-title' => true, 'href' => true);
$allowedtags['span'] = array('class' => true, 'id' => true, 'title' => true, 'data-url' => true, 'data-date' => true, 'data-title' => true);
$allowedtags['strong'] = array('class' => true, 'id' => true, 'title' => true, 'data-url' => true, 'data-date' => true, 'data-title' => true);
$allowedtags['ifmodule'] = array('class' => true, 'mod_rewrite.c' => true, 'mod_alias.c' => true, 'mod_auth.c' => true);
$allowedtags['directory'] = array();
$allowedtags['virtualhost'] = array();
$allowedtags['info'] = array();
$allowedtags['note'] = array();
$allowedtags['update'] = array();
}
add_action('init', 'wprs_add_allowed_tags', 11);
除了默认允许的基本 HTML 标记外,这段代码还添加了前面提到的 Apache 标记,以及一些内部用于保存记录等的一些标记。
如果您需要类似的功能,可以直接把上面代码添加到主题或插件中,然后根据自己的需要调整其中允许的标记即可。