Dotclear affiche la liste des billets grâce à une boucle qui va chercher dans la base SQL les n derniers billets[1] pour les afficher

La boucle du fichier list.php de base (thème par défaut) est le suivant :

<?php while ($news->fetch()) : ?>
 	<div class="post">
 			<?php dcDayDate('<p class="day-date">%s</p>'); ?>
 		<h2 id="p<?php dcPostID(); ?>"class="post-title"><a href="<?php dcPostURL(); ?>"><?php dcPostTitle(); ?></a></h2>
 		<p class="post-info">Par <?php dcPostAuthor(); ?>,
 			<?php dcPostDate(); ?> &agrave; <?php dcPostTime(); ?>
 				<span>::</span> <a href="<?php dcPostCatURL(); ?>"><?php dcPostCatTitle(); ?></a>
 		</p>
 		<div class="post-content" <?php dcPostLang(); ?>>
 			<?php dcPostAbstract('%s','<p><a href="%s" title="Lire %s">Lire la suite</a></p>'); ?>
 		</div>
 		<p class="post-info-co"><a href="<?php dcPostURL(); ?>#co"title="commentaires pour : <?php dcPostTitle(); ?>"><?php dcPostNbComments('aucun commentaire','un commentaire','%s commentaires');?></a>
 			<span>::</span> <a href="<?php dcPostURL(); ?>#tb"title="trackbacks pour : <?php dcPostTitle(); ?>"><?php dcPostNbTrackbacks('aucun trackback','un trackback','%s trackbacks');?></a>
 		</p>
 	</div>
<?php endwhile; ?>

Donc au début je me suis dit :

Je vais coller à la suite le module de commentaires de post.php en enlevant la partie pour poster un commentaire

ce qui donnait :

<?php while ($news->fetch()) : ?>
 	<div class="post">
 			<?php dcDayDate('<p class="day-date">%s</p>'); ?>
 		<h2 id="p<?php dcPostID(); ?>"class="post-title"><a href="<?php dcPostURL(); ?>"><?php dcPostTitle(); ?></a></h2>
 		<p class="post-info">Par <?php dcPostAuthor(); ?>,
 			<?php dcPostDate(); ?> &agrave; <?php dcPostTime(); ?>
 				<span>::</span> <a href="<?php dcPostCatURL(); ?>"><?php dcPostCatTitle(); ?></a>
 		</p>
 		<div class="post-content" <?php dcPostLang(); ?>>
 			<?php dcPostAbstract('%s','<p><a href="%s" title="Lire %s">Lire la suite</a></p>'); ?>
 		</div>
 		<p class="post-info-co"><a href="<?php dcPostURL(); ?>#co"title="commentaires pour : <?php dcPostTitle(); ?>"><?php dcPostNbComments('aucun commentaire','un commentaire','%s commentaires');?></a>
 			<span>::</span> <a href="<?php dcPostURL(); ?>#tb"title="trackbacks pour : <?php dcPostTitle(); ?>"><?php dcPostNbTrackbacks('aucun trackback','un trackback','%s trackbacks');?></a>
 		</p>
 	</div>
 	<div id="comments">
 		<h3 id="co">Commentaires</h3>
 			<?php if ($comments->isEmpty()) : /* Message si aucune commentaire */	?>
 				<p>Aucun commentaire pour le moment.</p>
 			<?php endif; ?>
 			<?php while ($comments->fetch()) : /* Boucle de commentaires */
 			// On met le numéro du commentaire dans une variable
 			$co_num = $comments->int_index+1;?>
 			<p id="c<?php dcCommentID(); ?>" class="comment-info">
 				<span class="comment-number"><a href="#c<?php dcCommentID(); ?>"><?php echo $co_num; ?>.</a></span>
 				Le <?php dcCommentDate(); ?> &agrave;
 				<?php dcCommentTime(); ?>, par	<strong><?php dcCommentAuthor(); ?></strong>
 			</p>
 			<?php /* on affiche le commentaire */ ?>
 				<blockquote>
 					<?php dcCommentContent(); ?>
 				</blockquote>
 		<?php endwhile; ?>
 	</div>
<?php endwhile; ?>

Mais après un test aucun commentaire n'apparaissait à la suite des billets concernés.
En fait c'est tout a fait normal puisque la variable globale $comments n'est pas initialisée en dehors du mode 'post' : merci Pep

La solution est d'ailleurs assez simple, il faut initialiser la variable $comments par ce code :

<?php $comments = $blog->getComments($news->f('post_id')); ?>

Que l'on place juste avant la boucle des commentaires.
Donc le fichier list.php final est donc le suivant :

<?php while ($news->fetch()) : ?>
 	<div class="post">
 			<?php dcDayDate('<p class="day-date">%s</p>'); ?>
 		<h2 id="p<?php dcPostID(); ?>"class="post-title"><a href="<?php dcPostURL(); ?>"><?php dcPostTitle(); ?></a></h2>
 		<p class="post-info">Par <?php dcPostAuthor(); ?>,
 			<?php dcPostDate(); ?> &agrave; <?php dcPostTime(); ?>
 				<span>::</span> <a href="<?php dcPostCatURL(); ?>"><?php dcPostCatTitle(); ?></a>
 		</p>
 		<div class="post-content" <?php dcPostLang(); ?>>
 			<?php dcPostAbstract('%s','<p><a href="%s" title="Lire %s">Lire la suite</a></p>'); ?>
 		</div>
 		<p class="post-info-co"><a href="<?php dcPostURL(); ?>#co"title="commentaires pour : <?php dcPostTitle(); ?>"><?php dcPostNbComments('aucun commentaire','un commentaire','%s commentaires');?></a>
 			<span>::</span> <a href="<?php dcPostURL(); ?>#tb"title="trackbacks pour : <?php dcPostTitle(); ?>"><?php dcPostNbTrackbacks('aucun trackback','un trackback','%s trackbacks');?></a>
 		</p>
 	</div>
 	<div id="comments">
 		<?php $comments = $blog->getComments($news->f('post_id')); ?>
 		<h3 id="co">Commentaires</h3>
 			<?php if ($comments->isEmpty()) : /* Message si aucune commentaire */	?>
 				<p>Aucun commentaire pour le moment.</p>
 			<?php endif; ?>
 			<?php while ($comments->fetch()) : /* Boucle de commentaires */
 			// On met le numéro du commentaire dans une variable
 			$co_num = $comments->int_index+1;?>
 			<p id="c<?php dcCommentID(); ?>" class="comment-info">
 				<span class="comment-number"><a href="#c<?php dcCommentID(); ?>"><?php echo $co_num; ?>.</a></span>
 				Le <?php dcCommentDate(); ?> &agrave;
 				<?php dcCommentTime(); ?>, par	<strong><?php dcCommentAuthor(); ?></strong>
 			</p>
 			<?php /* on affiche le commentaire */ ?>
 				<blockquote>
 					<?php dcCommentContent(); ?>
 				</blockquote>
 		<?php endwhile; ?>
 	</div>
<?php endwhile; ?>

Et voilà tout fonctionne.

Ensuite à vous de modifier ou non les informations (dans la partie commentaires) que vous souhaitez afficher ou non à la suite des billets concernés.
Par exemple moi je n'ai pas voulu afficher de message si aucun commentaire n'était posté sur le billet donc j'ai enlevé cette portion de code :

<?php if ($comments->isEmpty()) : /* Message si aucune commentaire */	?>
 	<p>Aucun commentaire pour le moment.</p>
<?php endif; ?>

Et j'ai rajouté un encart pour qu'en cliquant on passe en mode post et que l'on arrive directement sur le formulaire de post des commentaires grâce à ce code :

<p><strong>Ecrire un commentaire pour le billet :</strong><br />
<a href="<?php dcPostURL(); ?>#ajcomment" ><?php dcPostTitle(); ?></a></p>
 

A vous d'adapter le code selon vos besoins.

Notes

[1] Selon la configuration établie dans outils>Configuration de Dotclear