Comment form validation

How can I set the validation rules for the comment field?

I change the value of commenter name/e-mail/homepage onmouseover and onblur (I use this instead of labels – so if the field is empty it displays “Your e-mail”, “Your homepage”, etc.). The problem is, on submit, it submits this text in the homepage field (since it has no validation unlike the e-mail field where you get an error if you entered anything except something@something.something).

Read More

How could I validate the homepage field?

Related posts

Leave a Reply

1 comment

  1. Comments processing is done in the file: wp-comments-post.php. You can use the hook pre_comment_on_post to validate the values entered in the comment form fields.

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

    if you want to change a submitted value, use the filter preprocess_comment. E.g.:

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