Removing the “Website” Field from Comments and Replies?

In an effort to combat comment spam, I’d like to hide or remove the “Website” field from the “Leave a Reply” section for page and site comments.

I have no desire to increase others page rankings by having them embed their URLs in my sites comments, which seems to be what 99% of the comments on my site are wanting to do.

Read More

I’m using the Twenty Ten theme if that makes any difference in the answer.

Thanks!

Related posts

Leave a Reply

4 comments

  1. Create a file in wp-content/plugins/ with this code:

    <?php
    /*
    Plugin Name: Get Rid of Comment Websites
    */
    function my_custom_comment_fields( $fields ){
      if(isset($fields['url']))
        unset($fields['url']);
      return $fields;
    }
    
    add_filter( 'comment_form_default_fields', 'my_custom_comment_fields' );
    

    Normally, I’d say put it into your theme’s functions.php file, but I wouldn’t recommend doing that for a theme that could update like Twenty Ten. This way will let you add this functionality as a plugin which can be disabled.

  2. Apart from the good answer by John, I use a more straight forward solution, that allows me more control over the comment form and its fields.

    By default, your theme’s comments.php (Twenty Eleven’s, for example) may have something like this — <?php comment_form(); ?>

    Now, using <?php comment_form(); ?> is the same as:

    <?php
        $args = array(
            'fields' => array(
                            'author' => '<p class="comment-form-author">' . '<label for="author">' . __( 'Name' ) . '</label> ' . ( $req ? '<span class="required">*</span>' : '' ) .
                                            '<input id="author" name="author" type="text" value="' . esc_attr( $commenter['comment_author'] ) . '" size="30"' . $aria_req . ' /></p>',
                            'email'  => '<p class="comment-form-email"><label for="email">' . __( 'Email' ) . '</label> ' . ( $req ? '<span class="required">*</span>' : '' ) .
                                            '<input id="email" name="email" type="text" value="' . esc_attr(  $commenter['comment_author_email'] ) . '" size="30"' . $aria_req . ' /></p>',
                            'url'    => '<p class="comment-form-url"><label for="url">' . __( 'Website' ) . '</label>' .
                                            '<input id="url" name="url" type="text" value="' . esc_attr( $commenter['comment_author_url'] ) . '" size="30" /></p>',
            );
        );
        comment_form( $args );
    ?>
    

    The only difference, AFAIK, is that the longer version gives you more flexibility. As in your case, you don’t want to show the website field. So, you simply remove the url parameter in the fields array, and the end result is this:

    <?php
        $args = array(
            'fields' => array(
                            'author' => '<p class="comment-form-author">' . '<label for="author">' . __( 'Name' ) . '</label> ' . ( $req ? '<span class="required">*</span>' : '' ) .
                                            '<input id="author" name="author" type="text" value="' . esc_attr( $commenter['comment_author'] ) . '" size="30"' . $aria_req . ' /></p>',
                            'email'  => '<p class="comment-form-email"><label for="email">' . __( 'Email' ) . '</label> ' . ( $req ? '<span class="required">*</span>' : '' ) .
                                            '<input id="email" name="email" type="text" value="' . esc_attr(  $commenter['comment_author_email'] ) . '" size="30"' . $aria_req . ' /></p>',
            );
        );
        comment_form( $args );
    ?>
    

    …which is what you need.

    Recommended Reading: WordPress Codex Function Reference / comment_form

    Source File: (trunk version — most current) http://core.svn.wordpress.org/trunk/wp-includes/comment-template.php

  3. Not a perfect solution, the other solutions are fine

    Instead of modifying PHP, comments form, any how it’s just one input field, whats there if it is load and hided, Instead of writing if statements or rewrite the comments form

    simply hide the URL field

    .comment-form-url {
        display: none;
    }