2015-03-07 4 views
0

У меня есть файл single.php и я m showing single post in it. I want to show comments on related to this post under this post. But the problem is I m получает комментарии ко всем комментариям ниже любого сообщения.Показать комментарии к сообщению ниже сообщения в single.php wordpress

Ниже мой single.php код

<?php 
/* 
* The template for displaying all single posts and attachments 
*/ 
?> 
<?php get_header(); ?> 
<div id="single_post_wrap"> 
    <?php if (have_posts()) : while (have_posts()) : the_post(); ?> 
    <h2><?php the_title(); ?></h2> 
    <div class="time_and_author"><?php the_time('F jS, Y') ?> by <?php the_author() ?></div> 
    <div class="post_content"><?php the_content(); ?></div> 
    <p>Posted in <?php the_category(', ') ?> | <?php comments_popup_link('No Comments »', '1 Comment »', '% Comments »'); ?></p> 
    <?php endwhile; endif; ?> 
     <?php foreach (get_comments() as $comment): ?> 
     <div><?php echo $comment->comment_author; ?> said: "<?php echo $comment->comment_content; ?>".</div> 
     <?php endforeach; ?> 
    <?php comments_template(); ?>  
</div> 
</div> 
<?php get_footer(); ?> 

Ниже мой comments.php код

<?php $comment_args = array(
     'comment_notes_after' => '', 
     'title_reply' => 'Have something to say?' 
    ) ?> 

Спасибо заранее.

ответ

1

использование is_single() проверить почту:

<?php if(is_single()) : ?> 

<?php foreach (get_comments() as $comment): ?> 
    <div><?php echo $comment->comment_author; ?> said: "<?php echo $comment->comment_content; ?>".</div> 
    <?php endforeach; ?> 
<?php comments_template(); ?>  

<?php endif; // close to check single.php ?> 
+0

Давая мне такой же результат, как мой код. @jogesh_pi –

0

Удалите foreach из single.php:

<?php get_header(); ?> 
<div id="single_post_wrap"> 
    <?php if (have_posts()) : while (have_posts()) : the_post(); ?> 
    <h2><?php the_title(); ?></h2> 
    <div class="time_and_author"><?php the_time('F jS, Y') ?> by <?php the_author() ?></div> 
    <div class="post_content"><?php the_content(); ?></div> 
    <p>Posted in <?php the_category(', ') ?> | <?php comments_popup_link('No Comments »', '1 Comment »', '% Comments »'); ?></p> 
    <?php comments_template(); ?> 
    <?php endwhile; endif; ?>  
</div> 
</div> 
<?php get_footer(); ?> 

Затем добавьте его в comments.php и передать $comment_args в get_comments() примерно так:

<?php $comment_args = array(
     'comment_notes_after' => '', 
     'title_reply' => 'Have something to say?' 
    ) 
?> 
<?php foreach (get_comments($comment_args) as $comment): ?> 
    <div> 
     <?php echo $comment->comment_author; ?> said: "<?php echo $comment->comment_content; ?>". 
    </div> 
<?php endforeach; ?> 

имеют Посмотрите function reference для get_comments, чтобы увидеть список аргументов, вы можете перейти в get_comments

+0

Ваш отредактированный код дает эту ошибку. @Michael Doye Ошибка анализа: синтаксическая ошибка, неожиданный «endif» (T_ENDIF) в D: \ wamp \ www \ wordpress-4.1.1 \ wordpress \ wp-content \ themes \ plant_fusion2 \ single.php в строке 17 –

+0

Извиняйтесь, поставьте его в неправильное место! отредактированы в правильном формате. Просто нужно поменять «endif;» и «endwhile;» @ MaulikM.Dodia – Und3rTow

+0

Ошибки исчезли, но он отображает все комментарии, а не комментарии, относящиеся к определенному сообщению. @Michael Doye –

Смежные вопросы