I invested a good deal of time today customizing a comment form in a BuddyPress child theme.  My goals were to:

  1. Add a new field called, “Organization”
  2. Remove the “URL” field
  3. Remove the “Comment” text that appears above the corresponding textarea

The biggest learning for me was figuring out how comment_form, comments_template, and wp_list_comments fit together.

I learned a lot from Otto’s article on the subject, but that article didn’t address everything I needed to accomplish.  The following is what I did to accomplish the aforementioned goals.

In functions.php, I have the following:

// Change "Website" to "Organization" on the comment form.
function add_organization_to_comments($fields) {
    // New fields
    $fields['organization'] = '<p><label>Organization</label><input type="text" name="organization" value="'.(!empty($_POST['organization']) ? esc_attr( $_POST['organization']) : '').'" /></p>';
	$fields['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>';
	$fields['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>';
    // Remove unwanted default fields
    return $fields;
// save extra fields in database
add_action( 'comment_post', 'save_comment' );
function save_comment($comment_id)
    add_comment_meta( $comment_id, 'organization', esc_attr($_POST['organization']), true );

That’s it!

Tomorrow I will share how I displayed the “organization” field in the “comments” panel of the WordPress admin screen.



We love to communicate: phone, email, text, Facebook, Twitter, LinkedIn, you name it.



Call Now

Enroll in Our Free Beginner WordPress Class - delivered to your Email Inbox!

Become a WordPress superstar for FREE in only minutes a day!  Our free Beginner WordPress Email Class will be delivered to your inbox!

Learn More 

You Have Successfully Enrolled! Prepare For Amazing!