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 に答える