I am writing a plugin that displays custom home page that is in fact only one post with comments. The first time home page is displayed by the initial call by php. Then user can click a menu button to get another post. This is handled by ajax. So the whole page does not reload.

Getting and displaying other posts via ajax works fine till I 'refresh' the page via ajax. Then the comment reply link doesn't work any more.

I implemented [AJAXified commenting system][1] but I guess it has nothing to do with reply link.

Reply link before ajax is used looks like

<a onclick="return addComment.moveForm(&quot;div-comment-11&quot;, &quot;11&quot;, &quot;respond&quot;, &quot;8&quot;)" 
href="/?replytocom=11#respond" class="comment-reply-link">Reply</a>

When the same post is loaded via ajax the reply button looks like

<a onclick="return addComment.moveForm(&quot;div-comment-11&quot;, &quot;11&quot;, &quot;respond&quot;, &quot;8&quot;)" 
href="/wp-admin/admin-ajax.php?replytocom=11#respond" class="comment-reply-link">Reply</a>

The difference is in the href attribute. The second (ajax) one got wp-admin/admin-ajax.php part that does not supposed to be there.

I use one php function to generate html for both the fist time post is being displayed and for ajax call too.

Part of the function looks like

   function my_get_comments($post_id, $number_of_comments){
    //Gather comments for a specific post 
    $comments =     get_comments(array(
        'number' => $number_of_comments,
        'post_id' => $post_id,
        'status' => 'approve' //Change this to the type of comments to be displayed

    ob_start(); //workaround how to capture the output from comments_number() function
        comments_number( 'no comments', 'one comment', '% comments' );
    $capture_comments_number = ob_get_clean();

    $return_string ='<div id="comments_container">'
                    . '<style type="text/css">.hidden{display:none;}</style>'
                    . '<div id="comments_number">'
                        . $capture_comments_number
                        . '<a class="comment_switch"> Show / Hide Comments</a>'
                    . '</div>'
                    . '<div class="comments">'
                    . '<ol class="commentlist">';

    //Display / format the list of comments

    ob_start(); //workaround how to capture the output from wp_list_comments() function
            'reverse_top_level' => false //Show the latest comments at the top of the list
        ), $comments);
    $capture_wp_list_comments = ob_get_clean();
    return $return_string;

    ob_start(); //workaround how to capture the output from comment_form() function
        comment_form("", $post_id);
    $capture_comment_form = ob_get_clean();

    $return_string = $return_string 
                . $capture_comment_form
                . '</div>'
                . '</div>';

I need to fix the href part of the reply link?

  • Your link is gone/not here.
    – kaiser
    Oct 31, 2013 at 13:05

1 Answer 1


I realized that comment-reply.js is not loaded and it fixed the issue.

Could someone explain? I have no idea what happened.

So the fix was adding wp_enqueue_script( 'comment-reply' ); to my plugin code.

  • If you show us when and where you add the reply script in your theme, then yes, we'd be able to explain :)
    – kaiser
    Oct 31, 2013 at 13:06
  • I updated the code in my questions. It is just after the code that I posted the first time....
    – Radek
    Nov 16, 2013 at 9:14

Your Answer

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

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