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

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

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

Добавление отзывов помогает не только улучшить UX, но и положительно влияет на SEO — поисковые системы ценят уникальный пользовательский контент и социальные доказательства.

Популярные плагины для отзывов в WordPress

WP Customer Reviews — лёгкий и функциональный

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

Преимущества плагина:

  • Легкая интеграция через шорткод;
  • Возможность модерировать отзывы;
  • Поддержка микроразметки schema.org для улучшения сниппетов в поисковиках;
  • Настраиваемые поля формы.

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

Site Reviews — расширенный функционал и гибкость

Site Reviews — мощный плагин с рейтингами, фильтрацией и поддержкой нескольких форм отзывов. Он позволяет выводить отзывы в любом месте сайта через виджеты или шорткоды и имеет интеграцию с WooCommerce.

Основные возможности:

  • Рейтинг по звёздам;
  • Фильтрация и сортировка отзывов;
  • Импорт и экспорт отзывов;
  • Совместимость со многими темами и плагинами.

Site Reviews можно адаптировать под разные задачи, от простых до сложных.

Как добавить отзывы с помощью кастомного типа записи и кода

Если вы хотите гибко контролировать логику и оформление отзывов, можно реализовать их вручную, создав свой кастомный тип записи (Custom Post Type) и мета-поля. Рассмотрим пример с регистрацией CPT и добавлением мета-поля для оценки.

Регистрация кастомного типа записи "Отзыв"

function wpcourse_register_review_cpt() {
    $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'),
        'menu_icon' => 'dashicons-testimonial',
    );
    register_post_type('wpcourse_review', $args);
}
add_action('init', 'wpcourse_register_review_cpt');

Этот код создаёт новый тип записи «Отзывы» с базовыми полями заголовка и содержимого.

Добавление мета-поля для рейтинга

Чтобы добавить рейтинг (например, от 1 до 5), используем метабоксы:

function wpcourse_add_review_meta_box() {
    add_meta_box(
        'wpcourse_review_rating',
        'Рейтинг отзыва',
        'wpcourse_review_rating_callback',
        'wpcourse_review',
        'side',
        'default'
    );
}
add_action('add_meta_boxes', 'wpcourse_add_review_meta_box');

function wpcourse_review_rating_callback($post) {
    $value = get_post_meta($post->ID, '_wpcourse_review_rating', true);
    echo '<label for="wpcourse_review_rating_field">Оценка (1–5): </label>';
    echo '<input type="number" id="wpcourse_review_rating_field" name="wpcourse_review_rating_field" value="'.esc_attr($value).'" min="1" max="5" />';
}

function wpcourse_save_review_rating($post_id) {
    if (array_key_exists('wpcourse_review_rating_field', $_POST)) {
        update_post_meta(
            $post_id,
            '_wpcourse_review_rating',
            intval($_POST['wpcourse_review_rating_field'])
        );
    }
}
add_action('save_post', 'wpcourse_save_review_rating');

Теперь при создании или редактировании отзыва можно выставить рейтинг от 1 до 5.

Вывод отзывов на странице с кастомным шаблоном

Для вывода отзывов удобно создать кастомный WP_Query с сортировкой по дате или рейтингу. Пример кода для вывода 5 последних отзывов с рейтингом:

$args = array(
    'post_type' => 'wpcourse_review',
    'posts_per_page' => 5,
    'meta_key' => '_wpcourse_review_rating',
    'orderby' => 'meta_value_num',
    'order' => 'DESC',
);
$review_query = new WP_Query($args);
if ($review_query->have_posts()) {
    echo '<div class="wpcourse-reviews">';
    while ($review_query->have_posts()) {
        $review_query->the_post();
        $rating = get_post_meta(get_the_ID(), '_wpcourse_review_rating', true);
        echo '<article class="review-item">';
        echo '<h3>' . get_the_title() . '</h3>';
        echo '<div class="review-rating">Рейтинг: ' . intval($rating) . '/5</div>';
        echo '<div class="review-content">' . get_the_content() . '</div>';
        echo '</article>';
    }
    echo '</div>';
    wp_reset_postdata();
} else {
    echo '<p>Отзывов пока нет.</p>';
}

Вывод можно оформить в шаблоне темы или через шорткод, если добавить соответствующую функцию.

Добавление формы отправки отзывов с валидацией

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

Форма обратной связи для отзывов

Пример HTML формы:

<form method="post" action="">
    <label>Ваше имя:</label>
    <input type="text" name="wpcourse_review_author" required />
    <label>Отзыв:</label>
    <textarea name="wpcourse_review_content" required></textarea>
    <label>Рейтинг (1-5):</label>
    <input type="number" name="wpcourse_review_rating" min="1" max="5" required />
    <input type="submit" name="wpcourse_submit_review" value="Отправить отзыв" />
</form>

Обработка отправки формы в functions.php

function wpcourse_handle_review_form() {
    if (isset($_POST['wpcourse_submit_review'])) {
        $author = sanitize_text_field($_POST['wpcourse_review_author']);
        $content = sanitize_textarea_field($_POST['wpcourse_review_content']);
        $rating = intval($_POST['wpcourse_review_rating']);

        if (empty($author) || empty($content) || $rating < 1 || $rating > 5) {
            echo '<p>Пожалуйста, заполните все поля корректно.</p>';
            return;
        }

        $new_review = array(
            'post_title' => 'Отзыв от ' . $author,
            'post_content' => $content,
            'post_status' => 'pending', // модерация
            'post_type' => 'wpcourse_review',
        );

        $post_id = wp_insert_post($new_review);
        if ($post_id) {
            update_post_meta($post_id, '_wpcourse_review_rating', $rating);
            echo '<p>Спасибо за ваш отзыв! После модерации он появится на сайте.</p>';
        } else {
            echo '<p>Произошла ошибка при добавлении отзыва.</p>';
        }
    }
}
add_action('wp', 'wpcourse_handle_review_form');

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

Использование микроразметки для отзывов (schema.org)

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

function wpcourse_add_review_schema() {
    if (is_singular('wpcourse_review')) {
        global $post;
        $rating = get_post_meta($post->ID, '_wpcourse_review_rating', true);
        $schema = array(
            '@context' => 'https://schema.org',
            '@type' => 'Review',
            'author' => get_the_title($post->ID),
            'reviewBody' => get_the_content(null, false, $post->ID),
            'reviewRating' => array(
                '@type' => 'Rating',
                'ratingValue' => intval($rating),
                'bestRating' => 5,
                'worstRating' => 1,
            ),
        );
        echo '<script type="application/ld+json">' . wp_json_encode($schema) . '</script>';
    }
}
add_action('wp_footer', 'wpcourse_add_review_schema');

Это повысит видимость отзывов в поисковых системах.

Заключение

Настройка отзывов в WordPress может быть решена как с помощью готовых плагинов (WP Customer Reviews, Site Reviews и др.), так и через создание собственного кастомного типа записи с мета-полями и формой. Такой подход позволяет гибко адаптировать функционал под конкретные задачи проекта.

Для удобства модерации, безопасности и SEO важно не забывать про валидацию данных, антиспам фильтры и микроразметку schema.org.

Если хотите подробнее изучить плагины и расширения, посетите магазин WPSHOP с качественными решениями для WordPress.

Добавь в закладки и поделись с друзьями:

⭐⭐⭐⭐⭐
Как удалить таблицу из базы данных WordPress без плагинов: практическое руководство
09.12.2025
Как использовать AJAX в WordPress для форм и обновления контента
13.01.2026
Как настроить отзывы в WordPress с использованием плагинов и кода
01.01.2026
Как автоматизировать создание резервных копий WordPress: лучшие плагины и примеры кода
03.12.2025
Как добавить уникальный заголовок и описание для страниц WordPress
22.01.2026