web-dev-qa-db-fra.com

Est-il possible de faire insérer le dernier commentaire sur une autre page?

Si nous configurons wp pour séparer les commentaires en pages après X nombre de commentaires et que nous avons X + 1 commentaires, wp affiche uniquement le dernier commentaire au lieu d'afficher X et de déplacer le commentaire du bas vers la page suivante. Toute aide serait appréciée car c’est un gros problème pour ce que j’essaie de l’utiliser.

2
Strasbourg

ok .. alors je l'ai fait comme ça. Peut-être aidera certains. Vous avez utilisé le code de Dernière page de commentaire avec le nombre total de commentaires? , mais vous l'avez légèrement modifiée pour répondre à mes besoins. Donc, cela va dans votre page de modèle où vous appelez les commentaires (ou vous pouvez l'envelopper dans une fonction et le mettre dans functions.php)

 <?php comments_template( '', true ); ?>
 <?php 
 $comments_to_display = get_comments(array('post_id' => get_the_ID()));
 $comments_per_page = 10; // MAYBE: use get_option()?
 $comment_page = get_query_var( 'cpage' );
 $comment_this_page_start = 0;
 $comment_this_page_count = $comments_per_page;
 $oldest_comment_page_count = count( $comments_to_display ) % $comments_per_page;
 if ( 0 == $oldest_comment_page_count ) {
 $oldest_comment_page_count = $comments_per_page;
 }
 if ( 1 == $comment_page ) {
$comment_this_page_count = $oldest_comment_page_count;
 } else {
$comment_this_page_start = $oldest_comment_page_count + ($comment_page - 2) * 
$comments_per_page;
}
$comments_to_display = array_slice( $comments_to_display, $comment_this_page_start,  
$comment_this_page_count );

wp_list_comments(array('style' => 'div'), $comments_to_display); ?>

Vous êtes maintenant prêt à basculer!

Plus tard dans la journée:

J'ai essayé d'utiliser cette méthode avec le plugin de chargement de commentaire ajax et je n'ai pas fonctionné comme je le voulais. Je m'en suis débarrassé pour le moment. (il y a un problème avec un paramètre; si vous définissez $ comments_per_page à 10, il affiche les 10 premiers commentaires de la journée, puis attend que les commentaires atteignent 20 pour pouvoir afficher les 10 suivants ... puis attend les commentaires pour obtenir 30 à 30 pour afficher les commentaires. Le problème semble être simple et peut-être que quelqu'un le réglera dans le futur.)

Pour revenir à la solution, j’ai ajouté ce qui suit:

 $comments = array_reverse($comments);

dans comments.php (répertoire de thèmes), décocher les commentaires en séparant les pages du panneau d'administration et ajouter:

 'per_page' => '100'  

en tant que paramètre pour wp_list_comments ().

Maintenant, j'ai toujours les 100 commentaires les plus récents affichés sans commencer une nouvelle page chaque fois que la marque de commentaire atteint 101.

Cela pousse simplement l'ancien commentaire sur la page suivante et ajoute le plus récent en haut! C'est plus simple et moins mal à la tête, je recommande donc la deuxième solution!

1
Strasbourg

Il y a aussi ce plugin qui gère parfaitement le problème.

0
pereyra

Dans wp-admin, accédez à Settings -> Discussion -> Break comments into pages with X top level comments per page and the FIRST page displayed by default.

Si vous choisissez la première page affichée par défaut, assurez-vous que la liste déroulante ci-dessous est définie sur OLDER comments at the top of each page.

0
montrealist