X
  • Дизайн та розробка сайту
  • Дизайн і створення сайтів. Розробка тем для WordPress. Створення Landing Page.
  • office@gnatkovsky.com.ua
  • @vgnat
  • Написати мені
Замовити послугу

Склоняем слово комментарии WordPress

Приклад
  • 2024-05-27
  • 6246 переглядів

  • Дизайн та розробка сайту

Доброго времени суток. 🙂

Этот урок посвящен небольшому улучшению, ну или дополнению к стандартному функционалу WordPress. Каждый у кого есть свой блог на WordPress, замечал, что на некоторых стандартных темах или на других есть такой маленький некрасивый элемент, который сообщает о количестве оставленных комментариев. Некрасивый, он потому что пишет текст примерно следующего вида - К этой записи комментариев: 3. Конечно же хочется видеть правильное написание, как это сделано на некоторых темах или Вы видели у других на сайте - К записи оставили 3 комментария или Опубликовано 8 комментариев.

Склонение комментарий

Хочу показать Вам, как можно склонить слово Комментарий в зависимости от количества. Получится примерно так - 1 комментарий, 2 комментария, 5 комментариев. Думаю так намного красивей и более похоже на правду :). Покажу два варианта, реализации склонения слов.

Первый вариант просто склоняет слово - Комментарий. Для этого нужно открыть файл functions.php и добавить в него перед закрывающимся тегом ?> новую функцию.

function plural_form($number, $after) {
    $cases = array (2, 0, 1, 1, 1, 2);
    echo $number.' '.$after[ ($number%100>4 && $number%100<20)? 2: $cases[min($number%10, 5)] ];
}

Теперь надо открыть файл управления выводом комментариев comments.php. Потом найти в нем вызов функции, которая выводит количество. У меня она была вот такого вида:

<?php comments_number('Комментарии  %' );?>

У Вас может быть немного другая, ее надо заменить на новую, которая имеет следующий вид:

<?php
plural_form(
    get_comments_number(),
    array('комментарий','комментария','комментариев')
);
?>

Теперь у вас выведет - 2 комментария и тд. Можете спереди перед функцией дописать, например - Посетители оставили. В результате у Вас будет - Посетители оставили 2 комментария.

Второй вариант склоняет сразу два слова. Одно перед цифрой, второе после. Для примера выбраны слова - Опубликовано и Комментарий. В результате у нас получится - Опубликовано 8 комментариев. Такой вариант использован и у меня на сайте.

Опять же надо просто первый код добавить в functions.php:

function plural_form($number,$before,$after) {
    $cases = array(2,0,1,1,1,2);
    echo $before[($number%100>4 && $number%100<20)? 2: $cases[min($number%10, 5)]].' '.$number.' '.$after[($number%100>4 && $number%100<20)? 2: $cases[min($number%10, 5)]];
}

Второй код, также как и в первом варианте, нужно вставить вместо того что стоит у вас в comments.php.

<?php
plural_form(
    get_comments_number(),
    array('Опубликован','Опубликовано','Опубликовано'),
    array('комментарий','комментария','комментариев')
);
?>

По сути все. Больше ничего не нужно. По умолчанию, разработчики WordPress не придали особого значения такому вот функционалу с заморочкой на русском языке. Но, думаю, если сделаете все правильно, то добьетесь нужного результата.

На этом все, спасибо за внимание. 🙂

Якщо Вам була корисна моя праця, можете фінансово підтримати сайт або відключити блокувальник реклами, що займе 2 хвилини :)

Хочу підтримати фінансово Хочу відключити блокувальник

Оцініть статтю
  1. 5
  2. 4
  3. 3
  4. 2
  5. 1
Проголосовало: 15, в среднем: 4.7 из 5
Читайте також

Deprecated: Функція WP_Query викликана з аргументом, який вважається застарілим з версії 3.1.0! Вираз caller_get_posts застарілий. Використовуйте ignore_sticky_posts. in /var/www/vhosts/gnatkovsky.com.ua/gnatkovsky.com.ua/public/wp-includes/functions.php on line 6078