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

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

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

Большинство сайтов собирает отзывы вручную или через формы, но это требует времени и постоянного внимания. Автоматический генератор отзывов позволяет:

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

Такой подход особенно полезен для интернет-магазинов, сервисов и экспертных сайтов, где отзывы играют ключевую роль.

Какие плагины можно использовать для автоматизации отзывов

Плагин Expert Review для WordPress

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

Использование WPRemark для отзывов с возможностью кастомизации

Плагин WPRemark отлично подходит для создания отзывов с расширенными возможностями: вывод отзывов из JSON, интеграция с REST API и поддержка шорткодов для вывода в любом месте сайта.

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

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

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

function expertreview_register_reviews_cpt() {
    $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', 'custom-fields'),
        'show_in_rest'       => true,
    );
    register_post_type('expertreview_review', $args);
}
add_action('init', 'expertreview_register_reviews_cpt');

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

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

Для рейтинга можно использовать поле с числом от 1 до 5. Например, с помощью плагина Advanced Custom Fields или вручную через метабоксы. Для простоты добавим мета-поле с помощью функции:

function expertreview_save_review_rating($post_id) {
    if (isset($_POST['expertreview_rating'])) {
        $rating = intval($_POST['expertreview_rating']);
        if ($rating >= 1 && $rating <= 5) {
            update_post_meta($post_id, 'expertreview_rating', $rating);
        }
    }
}
add_action('save_post_expertreview_review', 'expertreview_save_review_rating');
<

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

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

function expertreview_display_reviews_shortcode($atts) {
    $args = array(
        'post_type'      => 'expertreview_review',
        'posts_per_page' => isset($atts['count']) ? intval($atts['count']) : 5,
        'orderby'        => 'date',
        'order'          => 'DESC',
    );
    $reviews = new WP_Query($args);
    if (!$reviews->have_posts()) {
        return '<p>Отзывы отсутствуют.</p>';
    }
    $output = '<div class="expertreview-reviews">';
    while ($reviews->have_posts()) {
        $reviews->the_post();
        $rating = get_post_meta(get_the_ID(), 'expertreview_rating', true);
        $output .= '<div class="expertreview-review">';
        $output .= '<h3>' . get_the_title() . '</h3>';
        $output .= '<div class="expertreview-rating">' . expertreview_render_stars($rating) . '</div>';
        $output .= '<div class="expertreview-content">' . get_the_content() . '</div>';
        $output .= '</div>';
    }
    $output .= '</div>';
    wp_reset_postdata();
    return $output;
}
add_shortcode('expert_reviews', 'expertreview_display_reviews_shortcode');

function expertreview_render_stars($rating) {
    $stars = '';
    for ($i = 1; $i <= 5; $i++) {
        if ($i <= $rating) {
            $stars .= '<span style="color:#f5c518;">★</span>';
        } else {
            $stars .= '<span style="color:#ccc;">☆</span>';
        }
    }
    return $stars;
}

Теперь вы можете выводить отзывы с помощью шорткода [expert_reviews count=3], где параметр count — количество выводимых отзывов.

Автоматическое добавление отзывов из внешних источников через REST API

Если у вас есть внешние сервисы или CRM с отзывами, можно настроить автоматический импорт в WordPress через REST API. Например, с помощью WPRemark или собственного кода, который будет регулярно запрашивать отзывы и создавать записи.

Пример функции для импорта отзыва из JSON-данных:

function expertreview_import_review($review_data) {
    $post_id = wp_insert_post(array(
        'post_title'   => sanitize_text_field($review_data['title']),
        'post_content' => sanitize_textarea_field($review_data['content']),
        'post_type'    => 'expertreview_review',
        'post_status'  => 'publish',
    ));
    if ($post_id && isset($review_data['rating'])) {
        update_post_meta($post_id, 'expertreview_rating', intval($review_data['rating']));
    }
    return $post_id;
}

Этот код можно вызвать при получении данных из API или файла. Для регулярного запуска используйте WP-Cron.

SEO-оптимизация отзывов и структурированные данные

Чтобы поисковые системы лучше индексировали отзывы и отображали рейтинги в сниппетах, добавьте разметку Schema.org в JSON-LD формате. Пример добавления разметки для отзыва:

function expertreview_add_review_schema() {
    if (!is_singular('expertreview_review')) {
        return;
    }
    global $post;
    $rating = get_post_meta($post->ID, 'expertreview_rating', true);
    $schema = array(
        '@context' => 'https://schema.org',
        '@type'    => 'Review',
        'author'   => get_the_author(),
        'reviewBody' => get_the_content(),
        'reviewRating' => array(
            '@type'       => 'Rating',
            'ratingValue' => $rating,
            'bestRating'  => '5',
            'worstRating' => '1',
        ),
        'itemReviewed' => array(
            '@type' => 'Thing',
            'name'  => get_the_title(),
        ),
    );
    echo '<script type="application/ld+json">' . wp_json_encode($schema) . '</script>';
}
add_action('wp_head', 'expertreview_add_review_schema');

Такой код обеспечит корректное отображение рейтинга в результатах поиска Google.

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

Для удобства пользователей отзывы должны быть читаемыми и наглядными. Используйте CSS для оформления звёзд, блоков отзывов и адаптивности. Например, добавьте стили:

.expertreview-reviews {
    max-width: 700px;
    margin: 0 auto;
}
.expertreview-review {
    border-bottom: 1px solid #ddd;
    padding: 15px 0;
}
.expertreview-rating {
    font-size: 18px;
    margin-bottom: 10px;
}

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

Пример AJAX-запроса для подгрузки отзывов

Добавьте в functions.php обработчик AJAX:

function expertreview_load_more_reviews() {
    $paged = isset($_POST['page']) ? intval($_POST['page']) : 1;
    $args = array(
        'post_type' => 'expertreview_review',
        'posts_per_page' => 5,
        'paged' => $paged,
    );
    $query = new WP_Query($args);
    $output = '';
    if ($query->have_posts()) {
        while ($query->have_posts()) {
            $query->the_post();
            $rating = get_post_meta(get_the_ID(), 'expertreview_rating', true);
            $output .= '<div class="expertreview-review">';
            $output .= '<h3>' . get_the_title() . '</h3>';
            $output .= '<div class="expertreview-rating">' . expertreview_render_stars($rating) . '</div>';
            $output .= '<div>' . get_the_content() . '</div>';
            $output .= '</div>';
        }
        wp_reset_postdata();
    } else {
        $output = '<p>Отзывы закончились.</p>';
    }
    wp_send_json_success($output);
}
add_action('wp_ajax_expertreview_load_more', 'expertreview_load_more_reviews');
add_action('wp_ajax_nopriv_expertreview_load_more', 'expertreview_load_more_reviews');

На фронтенде напишите JavaScript, который будет отправлять запросы и добавлять отзывы на страницу по кнопке «Показать больше».

Как удалить записи по условию в WordPress программно
02.03.2026
Автоматическое изменение стоимости товаров в WooCommerce при определённых условиях
26.04.2026
Как удалить или изменить URL страницы в WordPress без потери SEO
06.01.2026
Как использовать шорткоды в WordPress: практические примеры и создание своих шорткодов
20.11.2025
Как удалить комментарии из базы данных WordPress без потери данных
05.04.2026