如何新增或移除发表回复可用的HTML 标签与属性


在发表回复中,wordpress 允许网友使用一些不危及系统的HTML 标签与属性,这在/wp-includes/kses.php 程式中有命名为$allowedtags 变数。

您可以使用这些 HTML 标签和属性:
<a href=”” title=””> <abbr title=””> <acronym title=””> <b> <blockquote cite=””> <cite> <code> <del datetime=””> <em> <i> <q cite=””> <strike> <strong>

如果不允许网友使用HTML 标签,网路上有些教学是以下面程式教你这样子移除:

function sig_remove_comment_form_allowed_tags( $defaults ) {
  $defaults['comment_notes_after'] = '';
  return $defaults;
}
add_filter( 'comment_form_defaults', 'sig_remove_comment_form_allowed_tags' );

↑↑↑注意,这是错误的方式,这只能移除下方的说明文字,并没有更改到这个功能。

请再增加下方的程式一起用:

function sig_allowed_html_tags_in_comments() {
  define('CUSTOM_TAGS', true);
  global $allowedtags;
  $allowedtags = array();
}
add_action('init', 'sig_allowed_html_tags_in_comments', 10);

若是我们只想要开放一些HTML 标签与属性,可以依照下面程式方式撰写,在$allowedtags 阵列变数内自行增加HTML 标签,若要增加属性就是在HTML 标签下增加阵列。

function sig_allowed_html_tags_in_comments() {
  define('CUSTOM_TAGS', true);
  global $allowedtags;
  $allowedtags = array(
      'a' => array(
        'href' => array (),
        'title' => array ()
      ),
      'blockquote' => array(
           'cite' => array ()
      ),
      'cite' => array (),
      'code' => array(),
      'em' => array(),
      'strong' => array()
  );
}
add_action('init', 'sig_allowed_html_tags_in_comments', 10);

当然以上只是控制了评论的权限,并没有涉及到bbpress,如果想让bbpress也得到控制,查看以下代码

function sig_allowed_html_tags_in_comments() {
   return apply_filters( 'sig_allowed_html_tags_in_comments', array(
      'a' => array(
      'href' => array(),
      'title' => array(),
      'rel' => array(),
      'target' => array()
   ),
}
add_action('bbp_kses_allowed_tags', 'sig_allowed_html_tags_in_comments', 10);

请再注意:勿开放一些不该开放的HTML 标签,后果自行负责呀。

评论

还没有评论
    评论 说点什么