WordPress.org

Ready to get started?Download WordPress

Forums

Theme-Check
[resolved] Comments.php Cannot find comment_form (12 posts)

  1. CreativeWP
    Member
    Posted 1 year ago #

    I am validating a Theme, the last thing to validate is comments.php.

    The problem is that the single.php is using: <?php comments_template(); ?>

    Then the theme cannot find <?php comment_form(); ?>. I was told that this code line should be in comments.php and it is:

    <?php do_action('comment_form', $post->ID); ?>

    Any help?

    <?php
    
    // Do not delete these lines
    	if (!empty($_SERVER['SCRIPT_FILENAME']) && 'comments.php' == basename($_SERVER['SCRIPT_FILENAME']))
    		die ('Please do not load this page directly. Thanks!');
    
    	if ( post_password_required() ) { ?>
    		<p class="nocomments">This post is password protected. Enter the password to view comments.</p>
    	<?php
    		return;
    	}
    ?>
    
    <!-- You can start editing here. -->
    <br /><br />
    
    <?php if ( have_comments() ) : ?>
    	<h3 id="comments"><?php comments_number('No Responses', 'One Response', '% Responses' );?> to “<?php the_title(); ?>”</h3>
    
    	<div class="navigation">
    		<div class="alignleft"><?php previous_comments_link() ?></div>
    		<div class="alignright"><?php next_comments_link() ?></div>
    	</div>
    
    	<ol class="commentlist">
    	<?php wp_list_comments('callback=custom_comment'); ?>
    	</ol>
    
    	<div class="navigation">
    		<div class="alignleft"><?php previous_comments_link() ?></div>
    		<div class="alignright"><?php next_comments_link() ?></div>
    	</div>
     <?php else : // this is displayed if there are no comments so far ?>
    
    	<?php if ( comments_open() ) : ?>
    		<!-- If comments are open, but there are no comments. -->
    
    	 <?php else : // comments are closed ?>
    		<!-- If comments are closed. -->
    
    	<?php endif; ?>
    <?php endif; ?>
    
    <?php if ( comments_open() ) : ?>
    
    <br /><br />
    <div id="respond">
    
    <h3><?php comment_form_title( 'Leave a Reply', 'Leave a Reply to %s' ); ?></h3>
    
    <div class="cancel-comment-reply">
    	<small><?php cancel_comment_reply_link(); ?></small>
    </div>
    
    <?php if ( get_option('comment_registration') && !is_user_logged_in() ) : ?>
    <p>You must be <a href="<?php echo wp_login_url( get_permalink() ); ?>">logged in</a> to post a comment.</p>
    <?php else : ?>
    
    <form action="<?php echo get_option('siteurl'); ?>/wp-comments-post.php" method="post" id="commentform">
    
    <?php if ( is_user_logged_in() ) : ?>
    
    <p>Logged in as <a href="<?php echo get_option('siteurl'); ?>/wp-admin/profile.php"><?php echo $user_identity; ?></a>. <a href="<?php echo wp_logout_url(get_permalink()); ?>" title="Log out of this account">Log out &raquo;</a></p>
    
    <?php else : ?>
    
    <p><input type="text" name="author" id="author" value="<?php echo esc_attr($comment_author); ?>" size="22" tabindex="1" />
    <label for="author"><small>Name <?php if ($req) echo "(required)"; ?></small></label></p>
    
    <p><input type="text" name="email" id="email" value="<?php echo esc_attr($comment_author_email); ?>" size="22" tabindex="2" />
    <label for="email"><small>Mail (will not be published) <?php if ($req) echo "(required)"; ?></small></label></p>
    
    <p><input type="text" name="url" id="url" value="<?php echo esc_attr($comment_author_url); ?>" size="22" tabindex="3" />
    <label for="url"><small>Website</small></label></p>
    
    <?php endif; ?>
    
    <!--<p><small><strong>XHTML:</strong> You can use these tags: <code><?php echo allowed_tags(); ?></code></small></p>-->
    
    <p><textarea name="comment" id="comment" cols="58" rows="10" tabindex="4"></textarea></p>
    
    <p><input name="submit" type="submit" id="submit" tabindex="5" value="Submit Comment" />
    <?php comment_id_fields(); ?>
    </p>
    <?php do_action('comment_form', $post->ID); ?>
    
    </form>
    
    <?php endif; // If registration required and not logged in ?>
    </div>
    
    <?php endif; // if you delete this the sky will fall on your head ?>

    http://wordpress.org/extend/plugins/theme-check/

  2. Samuel Wood (Otto)
    Tech Ninja
    Plugin Author

    Posted 1 year ago #

    That's not what it's looking for.

    I made a post a little more than two years ago explaining exactly how to do this. The comment_form() function has been around since WordPress 3.0, and you should really be using it instead of hardcoding your comments form like that.

    More info: http://ottopress.com/2010/wordpress-3-0-theme-tip-the-comment-form/

  3. Samuel Wood (Otto)
    Tech Ninja
    Plugin Author

    Posted 1 year ago #

    Also, you have another post on this topic already. Please don't double post.

    http://wordpress.org/support/topic/preferance-comment_form-or-comments_template?replies=3

  4. CreativeWP
    Member
    Posted 1 year ago #

    Sorry, since I saw the topic closed, I though to be illegal to continue it.

    Thanks,

  5. CreativeWP
    Member
    Posted 1 year ago #

    I placed the code you show me on that wonderful link it tells me that I need; but the comments still not show. See please: http://bit.ly/YMaMef

    I am adding <?php comment_form(); ?>

    If I put <?php comments_template(); ?> the comments show up.

    Thanks,

  6. CreativeWP
    Member
    Posted 1 year ago #

    Ah, I mean, if I place in single.php <?php comments_template(); ?>

    The comments show up, but theme-check tells me that I am missing <?php comment_form(); ?> which is true.

    A funny dilemma, all I want now in live to validate WordPress Themes.

    Samuel, you are helping me to be a better, person.

    Thank you,

  7. Samuel Wood (Otto)
    Tech Ninja
    Plugin Author

    Posted 1 year ago #

    You don't put the comment_form call in single.php, you put it in the comments.php, replacing the comment form code that you have there already.

  8. CreativeWP
    Member
    Posted 1 year ago #

    Got it, I placed this instead of the much code there and it worked:

    <ol class="commentlist">
      <?php wp_list_comments(); ?>
    
     <div class="navigation">
      <?php paginate_comments_links(); ?>
     </div>
    
    <?php comment_form(); ?>
  9. CreativeWP
    Member
    Posted 1 year ago #

    One last question, if some one just press post a comment, but does not fill any fills, then they get a blank page that says:

    http://mywebsite.com/wp-comments-post.php

    ERROR: please type a comment.

    Is there a way around this? I do not like people looking under my hood if you know what I mean.

    Thanks,

  10. Samuel Wood (Otto)
    Tech Ninja
    Plugin Author

    Posted 1 year ago #

    No, that's core functionality. If they hit submit without typing a comment, then the WordPress core tells them to do so.

  11. CreativeWP
    Member
    Posted 1 year ago #

    Ah, ok,

    Thanks,

  12. MuthuKumar.pro
    Member
    Posted 1 year ago #

    Thank you dude.

Topic Closed

This topic has been closed to new replies.

About this Plugin

About this Topic