Support » Themes and Templates » Altering the comment_form from comment-template.php

  • Howdy –

    I have found tons of topics on how to add and alter fields in the comment form but I am having a hard time finding any help on altering other parts of the comment_form.

    I want to add an <a href=""> and a class “show_hide” to the “Leave a reply” title (#reply-title), and enclose the rest of the comment form in a div with the class of “slidingDiv”. The effect is to allow the user to toggle the comment form by clicking on “Leave a reply” per this jquery tutorial:

    I was able to create the effect successfully by adding these elements to the comment_form portion of the wp-includes/comment-template.php file, but of course I DO NOT want to touch that file, so I am trying to figure out how to make this happen through my theme.

    Here is the successful alteration to the code in /wp-includes/comment-template.php starting with line 1557 where i started my edits, and ending on line 1584 where I closed the div:

    <h3 id="reply-title"><a href="#" class="show_hide"><?php comment_form_title( $args['title_reply'], $args['title_reply_to'] ); ?></a> <small><?php cancel_comment_reply_link( $args['cancel_reply_link'] ); ?></small></h3>
    				<?php if ( get_option( 'comment_registration' ) && !is_user_logged_in() ) : ?>
    					<?php echo $args['must_log_in']; ?>
    					<?php do_action( 'comment_form_must_log_in_after' ); ?>
    				<?php else : ?>
    					<div class="slidingDiv"><form action="<?php echo site_url( '/wp-comments-post.php' ); ?>" method="post" id="<?php echo esc_attr( $args['id_form'] ); ?>">
    						<?php do_action( 'comment_form_top' ); ?>
    						<?php if ( is_user_logged_in() ) : ?>
    							<?php echo apply_filters( 'comment_form_logged_in', $args['logged_in_as'], $commenter, $user_identity ); ?>
    							<?php do_action( 'comment_form_logged_in_after', $commenter, $user_identity ); ?>
    						<?php else : ?>
    							<?php echo $args['comment_notes_before']; ?>
    							do_action( 'comment_form_before_fields' );
    							foreach ( (array) $args['fields'] as $name => $field ) {
    								echo apply_filters( "comment_form_field_{$name}", $field ) . "\n";
    							do_action( 'comment_form_after_fields' );
    						<?php endif; ?>
    						<?php echo apply_filters( 'comment_form_field_comment', $args['comment_field'] ); ?>
    						<?php echo $args['comment_notes_after']; ?>
    						<p class="form-submit">
    							<input name="submit" type="submit" id="<?php echo esc_attr( $args['id_submit'] ); ?>" value="<?php echo esc_attr( $args['label_submit'] ); ?>" />
    							<?php comment_id_fields( $post_id ); ?>
    						<?php do_action( 'comment_form', $post_id ); ?>

    What I added was <a href="#" class="show_hide"> to #reply-title and <div class="slidingDiv"> around the form.

    So I have been trying to just include this alteration in a function and call up that function in my theme’s comments.php file, which usually uses the <?php comment_form(); ?>
    – but I am not a .php wiz, and can’t seem to figure it out.

    Here is a link to the test site, thought it won’t do much good, this is more of a concept to address, not really a problem that is on the site:

    Any help is greatly appreciated!

Viewing 5 replies - 1 through 5 (of 5 total)
  • I’m sorry but as you are using a commercial theme, you need to seek support from the theme’s vendors.

    But it’s not a question about the theme, it’s a question on how to alter a core wordpress file without actually changing it, just forget about the theme, I just wanted to list all information if it helped at all…

    No – it’s about the comments.php template file in your theme – not any core files. Never, ever, edit WordPress core scripts. And do not encourage others to do so. Editing core scripts can bring down your entire site and/or open security holes for hackers to use.

    Okay, well it’s really just about how to override something in a core script in a comments.php – it could be my theme, any theme, it could twenty eleven, it doesn’t matter, they all have a comments.php that uses <?php comment_form(); ?>

    As i said in my question, I DO NOT want to change the actual core script – I have a goal to change the way the comment form is treated, I figured out how to alter the core script to make it do what I want, but I need to now figure out how to override the core script or manipulate it through another file in my theme – probably the comments.php or functions.php. – I in no way want to advocate changing the core script, in fact, this post is about exactly the opposite, I am trying to figure out how to get around doing that.

    Thank you for your concern though – any help is appreciated.

    This is a theme issue. We do not support commercial themes as you paid for support when you bought the theme. It is not our place to keep theme vendors in business or deprive them of any income that they may derive from support services. In the meantime, try reviewing

Viewing 5 replies - 1 through 5 (of 5 total)
  • The topic ‘Altering the comment_form from comment-template.php’ is closed to new replies.