如何让评论对每个AJAX加载的帖子起作用?

时间:2012-03-06 作者:Yash

我目前正在使用ajax加载一篇帖子。虽然后加载工作正常,但我无法获取要加载的注释。这是我的代码:

加载帖子的我的javascript:

<script>
$(".view_post").click(function(e) {
    e.preventDefault();
    postid = $(this).attr("rel");
    $.ajax({
        url:"/wp-admin/admin-ajax.php",
        type:\'POST\',
        data:\'action=posts_open&postid=\'+postid,
        success: function(html){
            $("#b_contentwrapper").empty();
            $("#b_contentwrapper").append(html);
        }
    });
});
</script>
javascript遍历函数。php方式:

function implement_posts()
{
    //<?php
    get_template_part( \'loop\', \'single\' );
    die();
}
下面是我实际加载帖子内容的代码:

<?php
    $linkid = "p=".$_POST["postid"];
    $posti = new WP_Query($linkid);
    $posti->the_post();
    echo "Time: ";
    the_time(\'F jS, Y\');
    echo "<br />";
    the_category(\', \');
    echo "<br />";
    the_title();
    echo "<br />";
    the_content();
    echo "<br />";
    comment_form();
    ?>
    </div>
    <?php if (have_comments()) {
        echo "Comments ok";
    }
    else
    {
        echo "No comments";
    }
    ?>
现在,即使是有评论的帖子,我也会显示“没有评论”。其他一切都正常工作。有人能帮我吗?

非常感谢。

3 个回复
SO网友:Beowulfenator

have_comments 功能:

此函数依赖于要设置的全局$wp\\u查询对象-这通常是循环中的情况

问题是ajax处理程序创建了自己的WP\\U查询对象。请注意,您没有打电话the_post(), 相反,你在打电话$posti->the_post(). 同样的逻辑也适用于注释。

请尝试以下操作:

if ($posti->have_comments()) {
    echo "Comments ok";
}  else {
    echo "No comments";
}

SO网友:ifdion

在我看来,最好使用JQuery.load($[this].attr(\'href\') \'.div-with-content-and-comment\');

而不是确保你有一个单身。带有class="div-with-content-and-comment" 您希望通过ajax加载。

SO网友:Rarst

查看have_comments() - 此检查从全局$wp_query 对象,该对象不在您的案例中使用。

因此,第一步是更换have_comments() 检查$posti->have_comments().

结束

相关推荐

将NEXT/PREVICE_POSTS_LINK与自定义搜索配合使用

我的网站上有一些不同的搜索:“物种概况”(自定义帖子类型搜索)术语表(自定义帖子类型搜索)目前我正在使用search.php; $_POST[\"type\"] 确定已使用的搜索,以及$_POST[\"s\"] 对于查询条件:<?php if (isset($_POST[\"s\"])) { $search_term = $_POST[\"s\"]; } if (isset($_POST[\"type\"])) {&#