web-dev-qa-db-fra.com

Validation du formulaire de commentaire

Comment définir les règles de validation du champ de commentaire?

Je modifie la valeur du nom/e-mail/de la page d'accueil du commentateur onmouseover et onblur (j'utilise celui-ci à la place des étiquettes. Si le champ est vide, il affiche "Votre e-mail", "Votre page d'accueil", etc.). Le problème est que, lors de la soumission, il envoie ce texte dans le champ de la page d'accueil (car il n'a pas de validation contrairement au champ de courrier électronique dans lequel vous obtenez une erreur si vous avez entré autre chose que quelque chose@quelque chose.quelque chose).

Comment puis-je valider le champ de la page d'accueil?

3
Kilgore_Trout

Le traitement des commentaires est effectué dans le fichier wp-comments-post.php. Vous pouvez utiliser le hook pre_comment_on_post pour valider les valeurs entrées dans les champs du formulaire de commentaire.

function custom_validate_comment_url() {
    if( !empty( $_POST['url'] ) && !preg_match( '\b(https?|ftp|file)://[-A-Z0-9+&@#/%?=~_|!:,.;]*[-A-Z0-9+&@#/%=~_|]', $_POST['url'] ) // do you url validation here (I am not a regex expert)
        wp_die( __('Error: please enter a valid url or leave the homepage field empty') );
}

add_action('pre_comment_on_post', 'custom_validate_comment_url');

si vous souhaitez modifier une valeur soumise, utilisez le filtre preprocess_comment. Par exemple.:

function custom_change_comment_url( $commentdata ) {
    if( $commentdata['comment_author_url'] == 'Your homepage' )
        $commentdata['comment_author_url'] = '';
    return $commentdata;
}

add_filter('preprocess_comment', 'custom_change_comment_url');
7
sorich87