Как сделать отзывы с рейтингом в WordPress: практические способы

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

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

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

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

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

Самый простой способ добавить отзывы с рейтингом — установить специализированный плагин. Рассмотрим три популярных варианта.

1. WP Customer Reviews

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

Преимущества:

  • Легкая интеграция с любыми темами.
  • Возможность добавлять несколько критериев оценки.
  • Поддержка капчи и антиспам.

Установка и настройка сводятся к активации плагина и добавлению шорткода [wp_customer_review] в нужное место.

2. Site Reviews

Это более мощный плагин с возможностью настроить шаблоны вывода, интеграцию с WooCommerce и SEO-оптимизированными микроразметками для звездных рейтингов.

Ключевые особенности:

  • Поддержка нескольких типов рейтингов.
  • Автоматическое добавление микроразметки Schema.org.
  • Импорт и экспорт отзывов.

Для вывода отзывов используйте шорткод [site_reviews]. А для формы добавления отзывов — [site_reviews_form].

3. WP Product Review Lite

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

Преимущества:

  • Красивый дизайн блоков отзывов.
  • Интеграция с Gutenberg.
  • Возможность добавлять плюсы и минусы.

Создаем отзывы с рейтингом вручную: пример кода

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

1. Регистрируем кастомный тип записи "Отзыв"

function wphost_register_review_post_type() {
    $labels = array(
        'name'               => 'Отзывы',
        'singular_name'      => 'Отзыв',
        'add_new'            => 'Добавить отзыв',
        'add_new_item'       => 'Добавить новый отзыв',
        'edit_item'          => 'Редактировать отзыв',
        'new_item'           => 'Новый отзыв',
        'all_items'          => 'Все отзывы',
        'view_item'          => 'Просмотр отзыва',
        'search_items'       => 'Поиск отзывов',
        'not_found'          => 'Отзывы не найдены',
        'not_found_in_trash' => 'В корзине отзывов не найдено',
        'menu_name'          => 'Отзывы'
    );
    $args = array(
        'labels'             => $labels,
        'public'             => true,
        'has_archive'        => true,
        'supports'           => array('title', 'editor', 'author'),
        'show_in_rest'       => true,
        'menu_position'      => 20,
        'menu_icon'          => 'dashicons-star-filled'
    );
    register_post_type('wphost_review', $args);
}
add_action('init', 'wphost_register_review_post_type');

2. Добавляем метаполе рейтинга (звезды)

Для простоты используем поле с числом от 1 до 5.

function wphost_add_review_meta_box() {
    add_meta_box('wphost_review_rating', 'Рейтинг (1-5)', 'wphost_render_review_meta_box', 'wphost_review', 'side', 'default');
}
add_action('add_meta_boxes', 'wphost_add_review_meta_box');

function wphost_render_review_meta_box($post) {
    $rating = get_post_meta($post->ID, '_wphost_review_rating', true);
    echo '<label for="wphost_review_rating_field">Введите рейтинг:</label>';
    echo '<input type="number" id="wphost_review_rating_field" name="wphost_review_rating_field" value="' . esc_attr($rating) . '" min="1" max="5" style="width:100%;" />';
}

function wphost_save_review_meta_box($post_id) {
    if (array_key_exists('wphost_review_rating_field', $_POST)) {
        $rating = intval($_POST['wphost_review_rating_field']);
        if ($rating < 1) $rating = 1;
        if ($rating > 5) $rating = 5;
        update_post_meta($post_id, '_wphost_review_rating', $rating);
    }
}
add_action('save_post', 'wphost_save_review_meta_box');

3. Выводим отзывы с рейтингом на странице

Пример вывода отзывов с отображением звезд.

function wphost_display_reviews() {
    $args = array(
        'post_type' => 'wphost_review',
        'posts_per_page' => 10
    );
    $reviews = new WP_Query($args);
    if ($reviews->have_posts()) {
        echo '<div class="wphost-reviews">';
        while ($reviews->have_posts()) {
            $reviews->the_post();
            $rating = get_post_meta(get_the_ID(), '_wphost_review_rating', true);
            echo '<div class="wphost-review-item">';
            echo '<h3>' . get_the_title() . '</h3>';
            echo '<div class="wphost-review-rating">' . wphost_render_stars($rating) . '</div>';
            echo '<div class="wphost-review-content">' . get_the_content() . '</div>';
            echo '</div>';
        }
        echo '</div>';
        wp_reset_postdata();
    } else {
        echo '<p>Отзывы пока отсутствуют.</p>';
    }
}

function wphost_render_stars($rating) {
    $output = '';
    for ($i = 1; $i <= 5; $i++) {
        if ($i <= $rating) {
            $output .= '⭐';
        } else {
            $output .= '☆';
        }
    }
    return $output;
}

4. Добавляем форму на фронтенд для сбора отзывов

Пример простой формы с полями заголовка, текста и рейтинга. Обработка отправки реализована через AJAX или классически через POST.

function wphost_review_form_shortcode() {
    if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['wphost_review_nonce']) && wp_verify_nonce($_POST['wphost_review_nonce'], 'wphost_submit_review')) {
        $title = sanitize_text_field($_POST['wphost_review_title']);
        $content = sanitize_textarea_field($_POST['wphost_review_content']);
        $rating = intval($_POST['wphost_review_rating']);
        if ($rating < 1) $rating = 1;
        if ($rating > 5) $rating = 5;

        $new_review = array(
            'post_title'   => $title,
            'post_content' => $content,
            'post_type'    => 'wphost_review',
            'post_status'  => 'pending'
        );

        $post_id = wp_insert_post($new_review);
        if ($post_id) {
            update_post_meta($post_id, '_wphost_review_rating', $rating);
            echo '<p>Спасибо за ваш отзыв! Он появится после проверки.</p>';
        }
    }

    ob_start();
    ?>
    <form method="post" action="">
        <p><label>Заголовок отзыва<br><input type="text" name="wphost_review_title" required /></label></p>
        <p><label>Текст отзыва<br><textarea name="wphost_review_content" rows="5" required></textarea></label></p>
        <p><label>Рейтинг (1-5)<br><input type="number" name="wphost_review_rating" min="1" max="5" required /></label></p>
        <p><input type="hidden" name="wphost_review_nonce" value="<?php echo wp_create_nonce('wphost_submit_review'); ?>" /></p>
        <p><input type="submit" value="Отправить отзыв" /></p>
    </form>
    <?php
    return ob_get_clean();
}
add_shortcode('wphost_review_form', 'wphost_review_form_shortcode');

Обработка и модерация отзывов

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

Для удобства модерирования можно использовать готовые плагины антиспама или интегрировать Google reCAPTCHA в форму.

Расширенные возможности и интеграция

Если вы хотите более функциональную систему, стоит рассмотреть плагины с поддержкой микроразметки Schema.org, которые позволят поисковикам отображать рейтинг прямо в поисковой выдаче.

Также полезно интегрировать отзывы с рейтингом в страницы товаров WooCommerce или использовать плагин Clearfy Pro для оптимизации и контроля отзывов.

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

Вывод

Добавление отзывов с рейтингом в WordPress — задача решаемая как через плагины, так и с помощью кастомного кода. Если нужна быстрая и надежная система, используйте проверенные плагины, такие как Site Reviews или WP Customer Reviews.

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

Подробнее о плагинах и инструментах для WordPress можно узнать на WPSHOP.RU.

Как создать собственный шорткод в WordPress: пошаговое руководство
15.11.2025
Добавление коллекции атрибутов для товаров WooCommerce без плагинов: практическое руководство
21.06.2026
Как использовать PHPMailer в WordPress для отправки писем
04.03.2026
Как избежать проблем с блокировкой базы данных в WordPress
26.02.2026
Как решить проблему удаленного соединения с базой данных WordPress
09.12.2025