web-dev-qa-db-fra.com

Comment faire pour supprimer l'attribut novalidate du formulaire de commentaire

J'utilise le support html5 pour les formats d'entrée et les champs de formulaire de commentaire personnalisés avec ce code:

<?php
        $commenter = wp_get_current_commenter();

        $args = wp_parse_args( $args );
        if ( ! isset( $args['format'] ) )
            $args['format'] = current_theme_supports( 'html5', 'comment-form' ) ? 'html5' : 'xhtml';

        $req = get_option( 'require_name_email' );
        $aria_req = ( $req ? " aria-required='true'" : '' );
        $html_req = ( $req ? " required='required'" : '' );
        $html5    = 'html5' === $args['format'];

        comment_form(
        array(
            'comment_notes_after' => '',
            'comment_field' => '<div class="comment-form-comment form-group"><label class="control-label" for="comment">' . __( 'Comment', 'odin' ) . '</label><div class="controls"><textarea id="comment" name="comment" cols="45" rows="8" class="form-control" aria-required="true" ></textarea></div></div>',
            'fields' => apply_filters( 'comment_form_default_fields', array(
                'author' => '<div class="comment-form-author form-group">' . '<label class="control-label" for="author">' . __( 'Name', 'odin' ) . ( $req ? '<span class="required"> *</span>' : '' ) . '</label><input class="form-control" id="author" name="author" type="text" value="' . esc_attr( $commenter['comment_author'] ) . '" size="30"' . $aria_req . $html_req  . ' /></div>',
                'email' => '<div class="comment-form-email form-group"><label class="control-label" for="email">' . __( 'E-mail', 'odin' ) . ( $req ? '<span class="required"> *</span>' : '' ) . '</label><input class="form-control" id="email" name="email" ' . ( $html5 ? 'type="email"' : 'type="text"' ) . ' value="' . esc_attr(  $commenter['comment_author_email'] ) . '" size="30"' . $aria_req . $html_req  . ' /></div>',
                'url' => '<div class="comment-form-url form-group"><label class="control-label" for="url">' . __( 'Website', 'odin' ) . '</label>' . '<input class="form-control" id="url" name="url" ' . ( $html5 ? 'type="url"' : 'type="text"' ) . ' value="' . esc_attr( $commenter['comment_author_url'] ) . '" size="30" /></div>' ) )
        )
    ); ?>

Tout laisser prêt pour la validation html5, à l'exception de l'attribut novalidade de la balise. Je supprime actuellement avec jQuery, mais je me demande s’il existe un moyen de passer via WP/PHP

2
Adson Cicilioti

Il semble que WP core ajoute l'attribut novlidate au formulaire de commentaire lorsque la prise en charge HTML5 de votre thème est activée pour les formulaires de commentaire (voir includes/comment-template.php).

Pour le désactiver, utilisez

remove_theme_support('html5', 'comment-form');
2
pdme