Как создать иерархию отзывов с поддержкой рейтингов в WordPress

|

В современных проектах отзывы пользователей играют ключевую роль для повышения доверия и улучшения конверсии. Однако стандартная функциональность WordPress не предусматривает полноценной иерархии отзывов с возможностью оставлять рейтинги и ответы на отзывы. В этой статье разберём, как создать такую систему отзывов с иерархией и рейтингами, используя собственный код и проверенные плагины.

Почему нужна иерархия отзывов с рейтингами

Иерархия отзывов позволяет пользователям не просто оставлять комментарии, а вести диалог — отвечать на отзывы других пользователей или админа. Это повышает вовлечённость и показывает, что отзывы не статичны, а обсуждаются.

Рейтинги в отзывах дают наглядный показатель качества товара или услуги. Вместе с иерархией рейтинги делают отзывы более информативными и полезными для будущих клиентов.

Реализация такой системы требует настройки кастомных типов комментариев, добавления мета-полей для рейтингов и реализации логики отображения иерархии.

Используемые плагины для расширения отзывов

Для начала рассмотрим плагины, которые помогут добавить рейтинги и улучшить функциональность отзывов:

Эти плагины помогут быстро добиться нужного результата, но иногда требуется индивидуальная логика — тогда обращаемся к коду.

Создание кастомной иерархии отзывов с рейтингами через код

Рассмотрим пример создания кастомного типа комментариев (отзывов) с полем рейтинга и поддержкой ответов.

1. Добавляем поле рейтинга к комментариям

Для начала расширим форму комментариев, добавив поле для выбора рейтинга от 1 до 5.

function wphierarchy_add_rating_field() {
    echo '<p class="comment-form-rating">'
       .'<label for="rating">Рейтинг: <span class="required">*</span></label>'
       .'<select name="rating" id="rating" required>'
       . '<option value="">Выберите рейтинг</option>';
    for ($i = 1; $i <= 5; $i++) {
        echo '<option value="' . $i . '">' . $i . '</option>';
    }
    echo '</select></p>';
}
add_action('comment_form_logged_in_after', 'wphierarchy_add_rating_field');
add_action('comment_form_after_fields', 'wphierarchy_add_rating_field');

Этот код добавит обязательное поле рейтинга при оставлении отзыва.

2. Сохраняем рейтинг в мета-поле комментария

function wphierarchy_save_comment_rating($comment_id) {
    if (isset($_POST['rating']) && $_POST['rating'] != '') {
        $rating = intval($_POST['rating']);
        add_comment_meta($comment_id, 'wphierarchy_rating', $rating);
    }
}
add_action('comment_post', 'wphierarchy_save_comment_rating');

Теперь каждый комментарий будет хранить значение рейтинга.

3. Отображаем рейтинг и иерархию отзывов

Для вывода отзывов с рейтингами и поддержкой ответов, используем кастомный callback при выводе комментариев.

function wphierarchy_review_list($comment, $args, $depth) {
    $GLOBALS['comment'] = $comment;
    $rating = get_comment_meta($comment->comment_ID, 'wphierarchy_rating', true);
    ?>
    <li id="comment-<?php comment_ID(); ?>" <?php comment_class(array('wphierarchy-review'), $comment); ?>>
        <div class="wphierarchy-review-content">
            <div class="wphierarchy-review-meta">
                <strong><?php comment_author(); ?></strong>
                <span class="wphierarchy-rating">Рейтинг: <?php echo esc_html($rating); ?>/5</span>
                <span class="wphierarchy-date"><?php comment_date(); ?></span>
            </div>
            <div class="wphierarchy-review-text"><?php comment_text(); ?></div>
            <div class="wphierarchy-review-reply"><?php comment_reply_link(array_merge($args, array('depth' => $depth, 'max_depth' => $args['max_depth']))) ?></div>
        </div>
    </li>
    <?php
}

Для вывода комментариев с такой структурой нужно вызвать:

wp_list_comments(array(
    'style' => 'ol',
    'short_ping' => true,
    'avatar_size' => 50,
    'callback' => 'wphierarchy_review_list'
));

Этот вызов поддерживает вложенность ответов, что и создаёт иерархию.

Дополнительные советы по улучшению отзывов

Валидация и безопасность данных

Обязательно проверяйте полученный рейтинг и комментарии на безопасность. Пример выше использует intval() для рейтинга — это минимальная защита. Для комментариев используйте wp_kses_post() при выводе, чтобы избежать XSS.

Кэширование и производительность

При большом количестве отзывов вложенная иерархия может замедлить загрузку страницы. Используйте кэширование, например, через Transients API или плагины кэширования. Плагин Clearfy Pro из wpshop.ru поможет оптимизировать вывод комментариев и повысить скорость.

Использование REST API для отзывов

Если вы делаете SPA или мобильное приложение, можно расширить REST API WordPress, добавив поле рейтинга к комментариям и обеспечив поддержку иерархии через API. Пример добавления поля к REST API:

function wphierarchy_register_rating_in_rest() {
    register_rest_field('comment', 'wphierarchy_rating', array(
        'get_callback' => function($comment) {
            return get_comment_meta($comment['id'], 'wphierarchy_rating', true);
        },
        'schema' => array(
            'description' => 'Рейтинг отзыва',
            'type' => 'integer',
            'context' => array('view', 'edit')
        ),
    ));
}
add_action('rest_api_init', 'wphierarchy_register_rating_in_rest');

Вывод

Создание иерархии отзывов с поддержкой рейтингов в WordPress — задача вполне решаемая с помощью кастомного кода и подходящих плагинов. Важно правильно настроить форму отзывов, сохранить рейтинги и обеспечить удобный вывод с вложенностью. Это повысит качество отзывов и доверие пользователей к вашему сайту.

Для расширения возможностей рекомендуем посмотреть плагины на wpshop.ru — там есть решения для отзывов, рейтингов и оптимизации комментариев.

Как создать иерархию динамических блоков на странице WordPress
25.02.2026
WooCommerce: автоматическое установление родительской категории при импорте товаров
14.05.2026
Как создать иерархию пользовательских ролей в WordPress для управления доступом
25.12.2025
Как создать дерево разделений в WordPress с подсчетом и фильтрацией
14.03.2026
Как настроить виртуальные иерархии в WordPress для определённых типов постов
08.01.2026
×

AI-плагин

WPGPT
Сам создает статьи для вашего сайта WordPress

SEO и мета-теги

Парсинг конкурентов

Изображения

Комментарии

Подробнее