Search code examples
phpwordpresscomments

Wordpress Comment reply link does not appear


I am using custom code to print the comments but the problem is whatever i do, i cant print the comment reply link under any comment....

here is the code

    <?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 (!empty($post->post_password)) { // if there's a password
        if ($_COOKIE['wp-postpass_' . COOKIEHASH] != $post->post_password) {  // and it doesn't match the cookie
            ?>

            <p class="nocomments">This post is password protected. Enter the password to view comments.</p>

            <?php
            return;
        }
    }

    /* This variable is for alternating comment background */
    /*$oddcomment = 'class="alt" ';*/
    $oddcomment = 'alt';
?>

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

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

    <ol class="commentlist">

    <?php foreach ($comments as $comment) : ?>

        <!--<li <?php echo $oddcomment; ?>id="comment-<?php comment_ID() ?>">-->
        <li class="<?php echo $oddcomment; ?> <?php if ($comment->comment_author_email == get_the_author_email()) { echo 'author_comment'; } ?>" id="comment-<?php comment_ID() ?>">

            <?php echo get_avatar( $comment, 32 ); ?>

            <cite><?php comment_author_link() ?></cite> Says:
            <?php if ($comment->comment_approved == '0') : ?>
            <em>Your comment is awaiting moderation.</em>

            <?php endif; ?>
            <br />

            <small class="commentmetadata"><a href="#comment-<?php comment_ID() ?>" title=""><?php comment_date('F jS, Y') ?> at <?php comment_time() ?></a> <?php edit_comment_link('edit','&nbsp;&nbsp;',''); ?>  
            </small>



            <?php comment_text() ?>

            <div class="reply">
     <?php comment_reply_link( array ( 'reply_text' => 'Reply this comment' ) );
?>

</div>

        </li>

    <?php
        /* Changes every other comment to a different class */
        /*$oddcomment = ( empty( $oddcomment ) ) ? 'class="alt" ' : '';*/
        $oddcomment = ( empty( $oddcomment ) ) ? 'alt' : '';
    ?>

    <?php endforeach; /* end for each comment */ ?>

    </ol>

 <?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; ?>

But when i use wp_list_comments functions i can see the reply link appear automatically i am using wordpress 3.2.1


Solution

  • Thanks to the following codex-entry (http://codex.wordpress.org/Function_Reference/comment_reply_link), I managed to find the actual use of the comment_reply_link() on the following link: http://core.trac.wordpress.org/browser/tags/3.2.1/wp-includes/comment-template.php#L1061

    This leaves me with the following question - did you try adding either the second or the third parameter for the function? I think there might be something fishy going on under the hood, making the comment-link not know where to actually link.

    Try removing the following snippet

    comment_reply_link( array ( 'reply_text' => 'Reply this comment' ) );
    

    and instead use the following one

    comment_reply_link( array('reply_text' => 'Reply this comment'), comment_ID(), the_ID() );
    

    Let me know if it works out for you!