Cześć.
Jeżeli chcesz wyświetlić liczbę komentarzy w formie Komentarzy(x), to łatwiej będzie użyć funkcji: get_comments_number()
np. w postaci:
<?php
$num_comments = get_comments_number();
printf('Komentarzy(%d)', $num_comments);
?>
Lub z uwzględnieniem języków i dobrych praktyk:
<?php
$num_comments = get_comments_number();
printf(__("Comments(%d)", 'textdomain'), $num_comments);
?>
W rozwiązaniu MrShemek jest mały chochlik związany z odmianą liczebników w języku polskim. WordPress z tego co mi wiadomo nie umożliwia prawidłowej odmiany liczebników w języku polskim. Trzeba się posiłkować dodatkowym kodem. W pliku functions.php można dodać funckję:
<?php
function numerals_in_polish($num_comments){
$text = '% komentarze'; // Domyślny wariant
// Reguły dla pierwszych 19 liczb
if ($num_comments <= 19) {
if ($num_comments > 4 || $num_comments === 0) { // Zbiór od 5 do 19
$text = '% komentarzy';
} elseif (in_array($num_comments, array(2, 3, 4))) { // Zbiór dla 2,3,4
$text = '% komentarze';
} else { // Reszta czyli 1
$text = '% komentarz';
}
} else { // Reguły dla liczb od 20 w górę
$last_char = substr((string) $num_comments, -1, 1); // Zwraca ostatnią cyfrę
if (in_array( $last_char, array(0, 1, 5, 6, 7, 8, 9))) { // Końcówki z 0, 1, 5, 6, 7, 8, 9
$text = '% komentarzy';
} elseif (in_array($last_char, array(2, 3, 4))) { // Końcówki 2, 3, 4
$text = '% komentarze';
}
}
return $text;
}
?>
Wtedy można przed wywołaniem funkcji comments_number
sprawdzić formę gramatyczną i dodać ją jako trzeci parametr. Wyglądałoby to tak:
<?php
$num_comments = get_comments_number(); // Pobranie liczby komentarzy
$text = numerals_in_polish($num_comments); // Ustawienie formy gramatycznej
// Wyświetlenie
comments_number( 'Brak komentarzy', '1 komentarz', $text );
?>