Автоматизация сбора и публикации отзывов на сайте очень важна для повышения доверия посетителей и улучшения конверсии. В этой статье мы подробно разберём, как создать автоматический генератор отзывов в 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, который будет отправлять запросы и добавлять отзывы на страницу по кнопке «Показать больше».