web-dev-qa-db-fra.com

Filtrage des balises autorisées dans le formulaire de commentaire

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.

2
Yoav Kadosh

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).

1
JMau

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');
0
sakibmoon

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;

}
0
Brad Dalton