Jakiś czas temu dostałem pytanie od stałego czytelnika:
W angielskim jest 0 „No Responses”, 1 „One Response”, 2 i więcej „Responses”. W polskim 0 „Bez komentarza”, 1 „1 komentarz”, 2-4 „Komentarze”, 5 i więcej- „Komentarzy”. Nie jest stylistycznie poprawnie pisanie np. „2 komentarzy”, a taką formę można najczęściej spotkać w różnych miejscach w sieci. Ja rozwiązuję ten problem w moich templatkach 0 „Wpisz komentarz”, 1 „Jeden komentarz”, 2 i więcej „Komentarzy: „. Nie wiem, czy jest możliwe zaimplementowanie przedziału 2-4 tak, aby było „komentarze”. Na razie nie spotkałem się tym w żadnej templatce. Próbowałem sam to rozwiązać, ale bez skutku. Może warto o tym napisać?
Spróbujemy rozwiązać ten problem w najprostszy z możliwych sposobów.
Najpierw będziemy sprawdzać ile mamy komentarzy, a potem w zależności od tego w jakim przedziale znajdzie się ta liczba ustawimy odpowiedni format wyświetlania.
Sprawę załatwi poniższy kod:
$num_comments = get_comments_number();
if ( comments_open() ) {
if ( $num_comments == 0 ){
$comments = "Nie ma jeszcze komentarzy";
} elseif ( $num_comments == 1 ) {
$comments = "Jest już pierwszy komentarz";
} elseif ( 5 > $num_comments > 1 ) {
$comments = "Są już " . $num_comments . " komentarze";
} else {
$comments = "Jest już " . $num_comments. " komentarzy";
}
$write_comments = '<a href="' . get_comments_link() .'">'. $comments.'</a>';
} else {
$write_comments = 'Komentarze są wyłączone';
}
Na koniec wstawiamy i ostylowujemy w odpowiednim miejscu:
<?php echo $write_comments; ?>
Dla zainteresowany więcej informacji w Codex: get_comments_number
Commentaires