如果从AJAX加载评论,则评论`Reply`链接不起作用

时间:2013-10-13 作者:Radek

我正在编写一个插件,显示自定义主页,实际上only one post with comments. 第一次通过php的初始调用显示主页。然后,用户可以单击菜单按钮获取另一篇文章。这是由ajax处理的。因此,整个页面不会重新加载。

在我通过ajax“刷新”页面之前,通过ajax获取和显示其他帖子的效果很好。然后是评论reply 链接不再工作。

我实现了[AJAXified评论系统][1],但我想这与回复链接无关。

使用ajax之前的回复链接如下所示

<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>
当通过ajax加载相同的帖子时,回复按钮如下所示

<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>
区别在于href 属性第二个(ajax)获得wp-admin/admin-ajax.php 不应该存在的部分。

我使用一个php函数为第一次显示的帖子和ajax调用生成html。

部分函数如下所示

   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
        wp_list_comments(array(
            \'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>\';
我需要修复href 部分回复链接?

1 个回复
SO网友:Radek

我意识到comment-reply.js 未加载,已修复问题。

有人能解释一下吗?我不知道发生了什么事。

因此,修复程序正在添加wp_enqueue_script( \'comment-reply\' ); 我的插件代码。

结束

相关推荐

从媒体上传器检索AJAX请求中的JSON数据

我在获取通过ajax请求传递的JSON数据时遇到了一些问题。我正在尝试将媒体上传程序实现到插件设置页面中。我已经用this method 就媒体上传器功能而言。我希望能够检索PHP中的“附件”数据,对其进行解码,然后在关闭媒体上载程序并选择图像后对其进行处理。ajax请求正在工作,因为我可以回显一个响应并接收它,但当我尝试解码JSON字符串并执行vardump时,它返回null,如果我尝试访问数组键,它将为空。这是js代码。。。jQuery(document).ready(function($){