Отзывы с выбором оценки в WordPress: пошаговое руководство

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

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

Добавление отзывов с возможностью выбора оценки — это не просто красивая фича. Она помогает:

  • Увеличить доверие к продукту или сервису.
  • Собрать структурированную обратную связь.
  • Улучшить SEO за счёт уникального контента.
  • Повысить конверсию и вовлечённость пользователей.

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

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

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

WP Customer Reviews

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

Site Reviews

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

Rating-Widget: Star Review System

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

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

Создание кастомного типа записи и метаполей для отзывов с оценкой

Сначала зарегистрируем новый тип записи "wppolls_review" и добавим метаполе для оценки от 1 до 5.

function wppolls_register_review_post_type() {
    $labels = array(
        'name' => 'Отзывы',
        'singular_name' => 'Отзыв',
        'add_new' => 'Добавить отзыв',
        'add_new_item' => 'Добавить новый отзыв',
        'edit_item' => 'Редактировать отзыв',
        'new_item' => 'Новый отзыв',
        'view_item' => 'Просмотреть отзыв',
        'search_items' => 'Искать отзывы',
        'not_found' =>  'Отзывы не найдены',
        'not_found_in_trash' => 'В корзине отзывы не найдены',
    );
    $args = array(
        'labels' => $labels,
        'public' => true,
        'has_archive' => true,
        'supports' => array('title', 'editor', 'author'),
    );
    register_post_type('wppolls_review', $args);
}
add_action('init', 'wppolls_register_review_post_type');

Для оценки создадим метабокс:

function wppolls_add_rating_metabox() {
    add_meta_box('wppolls_rating', 'Оценка (1-5)', 'wppolls_rating_metabox_callback', 'wppolls_review', 'side');
}
function wppolls_rating_metabox_callback($post) {
    $value = get_post_meta($post->ID, '_wppolls_rating', true);
    echo '<select name="wppolls_rating" id="wppolls_rating">';
    for ($i = 1; $i <= 5; $i++) {
        $selected = selected($value, $i, false);
        echo "<option value=\"$i\" $selected>$i</option>";
    }
    echo '</select>';
}
add_action('add_meta_boxes', 'wppolls_add_rating_metabox');

Сохраним значение оценки:

function wppolls_save_rating_meta($post_id) {
    if (array_key_exists('wppolls_rating', $_POST)) {
        update_post_meta($post_id, '_wppolls_rating', intval($_POST['wppolls_rating']));
    }
}
add_action('save_post', 'wppolls_save_rating_meta');

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

Чтобы показать отзывы с оценкой на странице, создадим шорткод. Он будет выводить список отзывов с количеством звёзд.

function wppolls_reviews_shortcode() {
    $args = array(
        'post_type' => 'wppolls_review',
        'posts_per_page' => 10,
    );
    $query = new WP_Query($args);
    if (!$query->have_posts()) {
        return '<p>Отзывов пока нет.</p>';
    }
    $output = '<div class="wppolls-reviews">';
    while ($query->have_posts()) {
        $query->the_post();
        $rating = intval(get_post_meta(get_the_ID(), '_wppolls_rating', true));
        $stars = str_repeat('★', $rating) . str_repeat('☆', 5 - $rating);
        $output .= '<div class="wppolls-review">';
        $output .= '<h3>' . get_the_title() . '</h3>';
        $output .= '<div class="wppolls-rating">' . $stars . '</div>';
        $output .= '<div class="wppolls-content">' . get_the_content() . '</div>';
        $output .= '</div>';
    }
    $output .= '</div>';
    wp_reset_postdata();
    return $output;
}
add_shortcode('wppolls_reviews', 'wppolls_reviews_shortcode');

Теперь в любом месте сайта можно вставить [wppolls_reviews] и увидеть список отзывов с оценками.

Добавление формы для новых отзывов с рейтингом

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

function wppolls_review_form_shortcode() {
    if ('POST' == $_SERVER['REQUEST_METHOD'] && !empty($_POST['wppolls_review_nonce']) && wp_verify_nonce($_POST['wppolls_review_nonce'], 'wppolls_submit_review')) {
        $title = sanitize_text_field($_POST['wppolls_review_title']);
        $content = sanitize_textarea_field($_POST['wppolls_review_content']);
        $rating = intval($_POST['wppolls_review_rating']);
        if ($rating < 1 || $rating > 5) $rating = 5;

        $new_review = array(
            'post_title' => $title,
            'post_content' => $content,
            'post_status' => 'pending',
            'post_type' => 'wppolls_review',
        );
        $post_id = wp_insert_post($new_review);
        if ($post_id) {
            update_post_meta($post_id, '_wppolls_rating', $rating);
            echo '<p>Спасибо за отзыв! Он появится после модерации.</p>';
        }
    }
    ob_start();
    ?>
    <form method="post" class="wppolls-review-form">
        <p><label>Заголовок отзыва</label><br><input type="text" name="wppolls_review_title" required></p>
        <p><label>Текст отзыва</label><br><textarea name="wppolls_review_content" rows="5" required></textarea></p>
        <p><label>Оценка</label><br><select name="wppolls_review_rating">
            <option value="5">5</option>
            <option value="4">4</option>
            <option value="3">3</option>
            <option value="2">2</option>
            <option value="1">1</option>
        </select></p>
        <p><input type="submit" value="Отправить отзыв"></p>
        <input type="hidden" name="wppolls_review_nonce" value="<?php echo wp_create_nonce('wppolls_submit_review'); ?>">
    </form>
    <?php
    return ob_get_clean();
}
add_shortcode('wppolls_review_form', 'wppolls_review_form_shortcode');

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

Советы по улучшению и интеграции

Для улучшения функционала можно:

  • Добавить AJAX-отправку формы для лучшего UX.
  • Интегрировать с плагином Clearfy Pro для оптимизации и защиты от спама.
  • Добавить вывод среднего рейтинга по всем отзывам с помощью дополнительного шорткода.
  • Использовать WPCommunity или JournalX для создания сообщества, где отзывы будут более заметными и обсуждаемыми.

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

Как создать свой shortcode для опросов в WordPress
17.11.2025
Отзывы с выбором оценки в WordPress: пошаговое руководство
13.12.2025
Как создать опрос из формы контакта WordPress
23.12.2025
Как сделать опрос с ответами в несколько категорий в WordPress
13.12.2025
Как создать простой опрос в WordPress с помощью плагинов
07.11.2025