Фильтрация формы комментария Разрешенные теги

Как удалить некоторые допустимые теги HTML в комментариях / сообщениях? По какой-то причине следующий код, помещенный в functions.php моей темы, не работал:

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

При комментировании доступны теги, такие как <div> или <pre> .

Solutions Collecting From Web of "Фильтрация формы комментария Разрешенные теги"

Есть крючок фильтра, который позволяет вам запускать некоторую проверку перед отправкой комментария, чтобы вы могли использовать его также:

 add_filter('preprocess_comment', 'wpse_158147_check_new_comment'); function wpse_158147_check_new_comment($commentdata){ $commentdata['comment_content'] = preg_replace("/<tag(.*?)>(.*)<\/tag>/", "$2", $commentdata['comment_content']);// or str_replace return $commentdata; } 

Здесь «тег» будет удален (для замены здесь ваш конкретный тег).

Попробуйте подключиться к более позднему методу для комментариев.

 function my_comment_tags() { global $allowedtags; $allowedtags = array( 'strong' => array(), 'em' => array(), 'a' => array( 'href' => array (), 'title' => array ()) ); } add_action('comment_post', 'my_comment_tags'); 

В этом коде все они удалены. Просто добавьте обратно то, что вы хотите вернуть в код, который входит в ваш файл функций

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