# Faulty comment.php, comments won't show up after posting?

Something seems to be wrong with my comment.php:

<?php

// Do not delete these lines

if (!empty($_SERVER['SCRIPT_FILENAME']) && 'comments.php' == basename($_SERVER['SCRIPT_FILENAME']))

if ( post_password_required() ) { ?>
<?php
return;
}
?>

<!-- You can start editing here. -->

<?php if ( have_comments() ) : ?>

<?php if ( ! empty($comments_by_type['comment']) ) : ?> <h2 class="h2comments"><img src="http://zoomingjapan.com/wp-content/themes/alltuts-child/images/comments_big.png" alt="Leave a comment" width="32" height="32" /><?php comments_number('No Comments', '1 Comment', '% Comments' );?> <a href="#respond" class="addComment">Add your comment</a></h2> <ul class="commentlist" id="comments"> <?php wp_list_comments('type=comment&callback=mytheme_comment'); ?> <div class="navigation"> <?php paginate_comments_links(); ?> </div> </ul> <?php endif; ?> <?php if ( ! empty($comments_by_type['pings']) ) : ?>
<ul class="pinglist">
</ul>
<?php endif; ?>

<?php else : // this is displayed if there are no comments so far ?>

<?php if ('open' == $post->comment_status) : ?> <!-- 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 if ('open' ==$post->comment_status) : ?>

<div id="respond">

<?php if ( get_option('comment_registration') && !$user_ID ) : ?> <p>You must be <a href="<?php echo get_option('siteurl'); ?>/wp-login.php?redirect_to=<?php echo urlencode(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 ($user_ID ) : ?>
<h3>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></h3> <?php else : ?> <div id="authorData"> <p><input type="text" name="author" id="author" title="Your real name or any nickname (also Twitter username etc.) is okay." value="<?php echo$comment_author; ?>" size="22" tabindex="1" <?php if ($req) echo "aria-required='true'"; ?> /></p> <p><input type="text" name="email" id="email" title="Don't worry, it won't be published! ^-^ So, please enter a valid e-mail address!" value="<?php echo$comment_author_email; ?>" size="22" tabindex="2" <?php if ($req) echo "aria-required='true'"; ?> /></p> <p><input type="text" name="url" id="url" title="This field is not required, but feel free to share your blog, Twitter, Livejournal etc. with others!" value="<?php echo$comment_author_url; ?>" size="22" tabindex="3" /></p>

<div class="commentform_required_img"><img src="http://zoomingjapan.com/wp-content/themes/alltuts/images/commentform_input_required.png" alt="commentform input required" width="189" height="108" /></div>
</div>
<?php endif; ?>

<!--<p><small><strong>XHTML:</strong> You can use these tags: <code><?php echo allowed_tags(); ?></code></small></p>-->
<textarea name="comment" id="comment" cols="1" rows="10" tabindex="4"></textarea
<p>
<input name="submit" type="submit" id="submit" tabindex="5" title="" value="" />
<?php comment_id_fields(); ?>
<?php do_action('comment_form', \$post->ID); ?>
</p>
</form>
<?php endif; // If registration required and not logged in ?>

</div>

<?php endif; // if you delete this the sky will fall on your head ?>


When somebody new comments, they'll be redirected to a thank you page. So far so good. But if someone comments a second time, they won't see the "Your comment is awaiting moderation". In fact, they don't see their comment at all. Which then can lead to people commenting again and again because they think their comment didn't go through.

Only if I hit "reply to another comment" in the same post where I already commented, then I can see the "moderation comment".

This is completely weird and it shouldn't be like that.

Can you tell me what I need to change in my code in order to fix this?

Thank you very much.

• This probably has to do with the way your theme organises comments, but since you're not including the code that does this it's no possible to say what could be happening. – cjbj May 1 '17 at 8:21
• @cjbj I've posted the comment.php code. What else do you need? I'll provide it immediately! Thank you. :) – japanworm May 1 '17 at 14:09

This strange behavior was all related to a caching issue.

I contacted my host service again. They just gave me the same line to insert into my .htaccess file and I told them I already tried it and it didn't work.

I then showed them my .htaccess file and they deleted the whole part that concerned their server caching. Now server caching is completely off and everything works again.

Still not sure why this previously never caused issues. In the end, it had nothing to do with Wordpress.

I hope this answer will help people who run into similar problems.

## protected by Community♦Aug 1 '17 at 5:02

Thank you for your interest in this question. Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count).