Как вывести количество комментариев в правильном склонении?

В принципе показ количества комментариев обычно встроенная функция в любой более/менее современный шаблон для WordPress. Однако бывает необходимо поправить либо формат их вывода (например, добавить условие на показ разделителя от блока с метками) либо добавить учитывание склонений слова «Комментарий» от их количества.
Ниже будет описана функция для склонений существительных в зависимости от числа комментариев и кусок кода основного шаблона сайта для вывода даты, ссылок на метки и комментарии над статьей.

Для того чтобы в дальнейшем в шаблонах использовать функцию для склонений необходимо добавить ее в файл для пользовательских функций functions.php:

<?php
...
function declination($number, $titles)
{
    $cases = array (2, 0, 1, 1, 1, 2);
    return $number." ".$titles[ ($number%100>4 && $number%100<20)? 2 : $cases[min($number%10, 5)] ];
}
?>

Далее небольшой кусок кода вывода даты, меток и комментариев:

<div class="post-meta"> Категория: <strong><?php the_category(', ') ?></strong> | <?php the_time('d.m.Y'); ?> | <?php the_tags('Метки: ', ', '); ?> <?php $num_comments = get_comments_number( $post_id );  $comments = declination($num_comments, array('Комментарий', 'Комментария', 'Комментариев')); echo ($num_comments==0)?'':' | <a href="' . get_comments_link() .'">'. $comments.'</a>' ?></div>

В коде явно виден пример применения функции declination (склонения), а также видно применение тернарного оператора, для того чтобы не показывать разделитель в виде «|» перед ссылками на комментарии если их нет. Пример использования вы можете посмотреть прямо на этом блоге.

Комментариев: 2

  • 10.02.2012 MortWood:

    Никогда не обращал внимания на использование слова Комментарий на блогах и сайтах :) Оказывается вопрос-то острый. Спасибо — проверю, что у меня отображается.

  • 13.02.2012 Кирилл:

    Пожалуйста, я тоже раньше что-то не присматривался к склонениям числительных.


Добавление комментария:

 css.php