Comment puis-je afficher le montant d'un commentaire par article en dehors de la boucle? J'ai déjà essayé cela dans une fonction:
' . get_comments_number . '
, mais le texte "array" est affiché à l'écran ... Que dois-je faire pour que cela fonctionne?
Sur mon single.php
j'ai utilisé ceci pour sortir quelques éléments de liste (posts):
<ul class="wow dude">
<?php echo wowPosts(2); ?>
</ul>
Et dans mon functions.php j'ai utilisé ceci:
function wowPosts($num) {
global $wpdb;
$posts = $wpdb->get_results("SELECT comment_count, ID, post_title FROM $wpdb->posts ORDER BY comment_count DESC LIMIT 0 , $num");
foreach ($posts as $post) {
setup_postdata($post);
$id = $post->ID;
$title = $post->post_title;
$count = $post->comment_count;
$comment_count = get_comment_count($post->ID);
$all_comments = get_comment_count( array ( 'post_id' => get_the_ID() ) );
if ($count != 0) {
$popular .= '<li>';
$popular .= '<a href="' . get_permalink($id) . '" title="' . $title . '">' . $title . '</a> '. count( $all_comments ) . ' ';
$popular .= '</li>';
}
}
return $popular;
}
Comme vous pouvez le constater, j’ai édité votre premier code et l’a implémenté dans cette fonction pour pouvoir l’utiliser par élément de liste (par publication) ... Il affiche toujours un 4 partout.
Pour imprimer uniquement le nombre total de commentaires pour un identifiant de publication donné, utilisez l'argument count
:
echo get_comments(
array (
// post ID
'post_id' => 149,
// return just the total number
'count' => TRUE
)
);
ou simplement utiliser
// Argument: Post ID
echo get_comment_count( 149 );
Pour obtenir le nombre total de tous les commentaires de toutes les publications de la page en cours, vous pouvez utiliser la propriété comment_count
des objets de publication et les résumer:
echo array_sum(
wp_list_pluck( $GLOBALS['wp_query']->posts, 'comment_count' )
);