0

Im sorry about my english.

I have made more than 5 comments on post pages. I have publish all the comments. But there are no comments that appear on the post page.

This is my Comments.php content:

<?php
/**
 * @package WordPress
 * @subpackage Default_Theme
 */

// 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. -->

<?php if ( have_comments() ) : ?>
    <h3 id="comments"><?php comments_number('No Responses', 'One Response', '% Responses' );?> to &#8220;<?php the_title(); ?>&#8221;</h3>

    <ol class="commentlist">
    <?php wp_list_comments('avatar_size=58'); ?>
    </ol>

    <div class="navigation_comments">
        <div class="navigation_comments_alignleft"><?php previous_comments_link() ?></div>
        <div class="navigation_comments_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. -->
        <p class="nocomments">Comments are closed.</p>

    <?php endif; ?>
<?php endif; ?>

<?php comment_form(); ?>

<?php if ( comments_open() ) : ?>
<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" <?php if ($req) echo "aria-required='true'"; ?> />
<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" <?php if ($req) echo "aria-required='true'"; ?> />
<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 ?>

In my single.php, I load the comment using this code: <?php comment_form(); ?>

Why i using ( <?php comment_form(); ?> ) this code, because "Theme Check" required that.

Please help me. Thank you

7
  • hi, can you see the comments in the backend? if so what status do they have (approved/unapproved/spam) ?
    – birgire
    May 29, 2013 at 9:17
  • Dear Birgire, I have approved all comments in my backend. Print screen >> i.imgur.com/MP2jKAw.jpg
    – v123shine
    May 29, 2013 at 9:22
  • oh I know, i must using this code <?php comments_template(); ?> in my single.php page. Now the comments appear on the post page but i have two form comments. Print screen: i.imgur.com/UoeAODn.jpg
    – v123shine
    May 29, 2013 at 9:34
  • ok, my next question was about comments_template ;-) You have an extra form in your code (the input fields).
    – birgire
    May 29, 2013 at 9:43
  • OMG, i forget i have extra form. Thank you so much Birgie, you help me solved my problem.
    – v123shine
    May 29, 2013 at 9:54

1 Answer 1

2

ok, here is how we solved it together ;-)

We checked the following:

  • the comments are visible in the backend.

  • the comment status is approved for all the comments.

  • we need to use comments_template() in the template file single.php.

  • remove the extra form (the input fields), since comment_form() is used.

It's informative to view the the TwentyTwelve theme files single.php and comments.php to compare.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.