Отзыв с оценкой — важный элемент любого сайта, который помогает повысить доверие пользователей и улучшить конверсию. В этой статье мы подробно разберём, как организовать на сайте WordPress удобную и функциональную систему отзывов с оценками. Рассмотрим как готовые решения на базе плагинов, так и создание кастомного функционала с примерами кода.
Почему отзывы с оценками важны для сайта на WordPress
Отзывы позволяют посетителям делиться опытом взаимодействия с продуктом или услугой, а оценки дают быструю визуальную оценку качества. Такой формат повышает социальное доказательство, улучшает SEO благодаря уникальному пользовательскому контенту и увеличивает вовлечённость.
Для сайтов на WordPress существует множество готовых плагинов, которые позволяют реализовать отзывы с оценками без программирования. Но иногда нужно сделать уникальный функционал, интегрированный в тему или под задачи клиента.
Использование плагинов для отзывов с оценками в WordPress
Популярные плагины с рейтингом и отзывами
Наиболее востребованные решения:
- WP Customer Reviews — простой и бесплатный плагин, который позволяет принимать отзывы с рейтингом и модерировать их.
- Site Reviews — мощный плагин с поддержкой нескольких типов рейтингов, кастомными полями и шаблонами отображения.
- Rich Snippets WordPress Plugin — для добавления микроразметки к отзывам и оценкам, что улучшает отображение в поисковой выдаче.
- Clearfy Pro — не только оптимизация, но и функции улучшения отзывов и рейтингов.
Пример настройки Site Reviews
После установки плагина Site Reviews в админке можно настроить форму для отзывов, выбрать тип оценки (звёзды, баллы), а также включить автоматическую модерацию. Плагин поддерживает вывод через шорткод [site_reviews] и виджеты. Есть возможность интеграции с WooCommerce и другими плагинами.
Создание кастомной системы отзывов с оценками через код
Если нужно полностью контролировать функционал и дизайн, можно сделать систему отзывов с рейтинговыми полями самостоятельно. Рассмотрим пример создания кастомного типа записей "Отзывы" с полем для оценки от 1 до 5 и выводом на фронтенде.
Регистрация кастомного типа записи и метаполя для оценки
function wptemplates_register_review_cpt() {
$labels = array(
'name' => 'Отзывы',
'singular_name' => 'Отзыв',
'add_new' => 'Добавить отзыв',
'edit_item' => 'Редактировать отзыв',
);
$args = array(
'labels' => $labels,
'public' => true,
'supports' => array('title', 'editor', 'author'),
'has_archive' => true,
);
register_post_type('wptemplates_review', $args);
}
add_action('init', 'wptemplates_register_review_cpt');
function wptemplates_add_review_meta_box() {
add_meta_box('wptemplates_review_rating', 'Оценка (1-5)', 'wptemplates_review_rating_meta_box_callback', 'wptemplates_review', 'side');
}
add_action('add_meta_boxes', 'wptemplates_add_review_meta_box');
function wptemplates_review_rating_meta_box_callback($post) {
$value = get_post_meta($post->ID, '_wptemplates_review_rating', true);
echo '<label for="wptemplates_review_rating_field">Рейтинг:</label> ';
echo '<select name="wptemplates_review_rating_field" id="wptemplates_review_rating_field">';
for ($i=1; $i<=5; $i++) {
$selected = ($value == $i) ? 'selected' : '';
echo "<option value=\"$i\" $selected>$i</option>";
}
echo '</select>';
}
function wptemplates_save_review_rating($post_id) {
if (array_key_exists('wptemplates_review_rating_field', $_POST)) {
update_post_meta($post_id, '_wptemplates_review_rating', intval($_POST['wptemplates_review_rating_field']));
}
}
add_action('save_post', 'wptemplates_save_review_rating');Вывод отзывов с рейтингом на фронтенде
Создадим шорткод для вывода списка отзывов с звёздочной оценкой.
function wptemplates_reviews_list_shortcode() {
$args = array(
'post_type' => 'wptemplates_review',
'posts_per_page' => 10,
);
$query = new WP_Query($args);
if (!$query->have_posts()) return '<p>Отзывы ещё не добавлены.</p>';
$output = '<div class="wptemplates-reviews">';
while ($query->have_posts()) {
$query->the_post();
$rating = intval(get_post_meta(get_the_ID(), '_wptemplates_review_rating', true));
$stars = str_repeat('★', $rating) . str_repeat('☆', 5 - $rating);
$output .= '<div class="review-item">';
$output .= '<h3>' . get_the_title() . '</h3>';
$output .= '<div class="review-rating" title="Рейтинг: ' . $rating . ' из 5">' . $stars . '</div>';
$output .= '<div class="review-content">' . get_the_content() . '</div>';
$output .= '</div>';
}
$output .= '</div>';
wp_reset_postdata();
return $output;
}
add_shortcode('wptemplates_reviews_list', 'wptemplates_reviews_list_shortcode');Улучшение отзывов: добавление проверки и антиспама
Для повышения качества отзывов важно добавить проверку полей и защиту от спама. Если форма собирает отзывы с фронтенда, стоит использовать nonce-поля и капчу (например, Google reCAPTCHA). Это можно реализовать через плагины или вручную.
Для автоматической модерации и уведомлений рекомендуем использовать плагин Expert Review — он позволяет настроить продвинутую систему отзывов с проверкой и рейтингами.
Вывод отзывов в Gutenberg с кастомным блоком
Если вы используете редактор Gutenberg, можно создать кастомный блок для вывода отзывов. Это позволит пользователям легко вставлять отзывы и управлять их отображением через визуальный интерфейс.
Пример создания блока выходит за рамки этой статьи, но для начала изучите официальное руководство по созданию блоков в Gutenberg.
Выводы
Создание системы отзывов с оценками в WordPress — задача, которую можно решить как с помощью популярных плагинов, так и самостоятельно с кастомным кодом. Важно правильно организовать сбор, модерацию и вывод отзывов, а также подумать о защите от спама и удобстве для пользователей.
Используйте приведённые примеры как основу для реализации собственной системы отзывов, адаптируя под конкретные задачи вашего сайта на WordPress.