Comment puis-je supprimer certaines des balises HTML autorisées dans les commentaires/publications? Pour une raison quelconque, le code suivant, placé dans le functions.php
de mon thème, ne fonctionnait pas:
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 ())
);
}
Des balises telles que <div>
ou <pre>
sont toujours disponibles lors des commentaires.
Il existe un crochet de filtrage qui vous permet d'exécuter certaines vérifications avant que le commentaire ne soit posté afin que vous puissiez l'utiliser aussi:
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;
}
Ici, "tag" serait supprimé (à remplacer ici par votre tag spécifique).
Essayez de vous connecter à un crochet plus tard pour les balises de commentaire.
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');
Ce code les a tous supprimés. Ajoutez simplement ce que vous voulez retourner dans le code qui va dans votre fichier de fonctions
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;
}