3

我正在使用 ajax 加载帖子。代码是

$(document).ready(function(){

    loadPostsFun = function(){
        $.ajax({
            url: "http://lab1.koalamedia.es/ajax/",
            //url: "/random/",
            success: function(response){
                $("#randomPost").html( response );
            }
        });
    };
    $("#another").click(function(){
        loadPostsFun();
        return false;
    });
});

响应由带有以下代码的自定义模板生成:

<?php
    query_posts('showposts=1&orderby=rand');
    the_post();
    $args = array( 'numberposts' => 1, 'orderby' => 'date' );
    $rand_posts = get_posts( $args );
?>
<?php
    foreach( $rand_posts as $post ) :  setup_postdata($post);
?>

    <div id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
      <?php if ( is_front_page() ) { ?>
        <h2 class="entry-title"><?php the_title(); ?></h2>
        <?php } else { ?>
          <h1 class="entry-title"><?php the_title(); ?></h1>
        <?php } ?>

         <div class="entry-content">
          <?php the_content(); ?>
          <?php wp_link_pages( array( 'before' => '<div class="page-link">' . __( 'Pages:', 'twentyten' ), 'after' => '</div>' ) ); ?>
        <?php comments_popup_link(__('Comments (0)'), __('Comments (1)'), __('Comments (%)')); ?>
        </div><!-- .entry-content -->
      </div><!-- #post-## -->

      <?php 

        //comments_template( '', true ); //this doesn't work
        comment_form(); 
        //wp_list_comments(''); //this doesn't work

      ?>
<?php endforeach; ?>

ajax 请求有效,但没有显示评论。所有帖子数据都在那里。如何显示评论?

comments_template 或 wp_list_comments 都不起作用。

您可以查看演示或下载我在此处完成的模板示例

4

2 回答 2

2

没有太多调整只wp_list_comments()在评论模板(通常comments.php)中起作用。

使用get_comments(),将帖子 ID 作为参数传递:

$comments = get_comments(array ( 'post_id' =>  $post->ID );
if ( $comments )
{
    foreach ( $comments as $comment )
    {
        print "<li>$comment->comment_author<br>$comment->comment_content</li>";
    }
}
于 2012-04-26T23:45:18.500 回答
2

我发现了问题,我忘了设置全局变量:

global $withcomments;

我正在使用

$withcomments = true; 
comments_template();

但是没有全局它就行不通。

现在像普通评论一样工作。

于 2012-04-27T07:29:28.893 回答