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.
I’m using the Twenty Ten theme if that makes any difference in the answer.
Thanks!
Answers:
Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.
Method 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.
Method 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
Method 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;
}
Method 4
Removing the website field from comment form is quite easy. Below is the code with is just of few lines:
function cs_remove_comment_website_fields($fields) {
unset($fields['url']);
return $fields;
}
add_filter('comment_form_default_fields','cs_remove_comment_website_fields');
Source: How to remove the website field from WordPress comment?
All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0