Отзывы с оценками — важный элемент для многих сайтов на WordPress, особенно если вы ведёте блог, интернет-магазин или сервис с пользовательским контентом. В этой статье подробно рассмотрим, как создать функционал отзывов с оценками, используя как популярные плагины, так и собственные решения с кодом. Это поможет вам повысить доверие посетителей и улучшить UX на сайте.
Почему отзывы с оценками важны для сайта на WordPress
Отзывы с оценками помогают потенциальным клиентам или читателям быстро оценить качество товара, услуги или контента. Они повышают вовлечённость, дают обратную связь и могут положительно влиять на SEO, если отзывы структурированы и правильно выведены.
Кроме того, отзывы с оценками часто используются в WooCommerce, но даже для обычных блогов или портфолио они могут быть полезны для сбора мнений и создания социальной доказательности.
Использование плагинов для создания отзывов с оценками
Если вам нужно быстро и без сложностей добавить отзывы с оценками, лучше использовать проверенные плагины. Рассмотрим несколько популярных и надёжных вариантов.
Плагин WP Customer Reviews
Этот плагин позволяет добавить на любую страницу форму отзывов с полем оценки и комментариями. Он прост в настройке и имеет базовые настройки антиспама.
- Установка: в админке WordPress перейдите в Плагины > Добавить новый, найдите
WP Customer Reviewsи установите. - Использование: создайте страницу с шорткодом
[wp_customer_review_form]для вывода формы, а отзывы автоматически появятся ниже.
Подробнее: https://ru.wordpress.org/plugins/wp-customer-reviews/
Плагин Site Reviews
Site Reviews — более продвинутый плагин с поддержкой звёздных рейтингов, фильтров, CAPTCHA и интеграцией с Gutenberg. Он подойдёт для сайтов, где важна гибкость и внешний вид.
После установки и активации в настройках плагина создайте страницу и вставьте шорткод [site_reviews], чтобы вывести список отзывов с оценками. Для формы используйте [site_reviews_form].
Подробнее: Site Reviews на WPSHOP.RU
Создание собственного функционала отзывов с оценками на PHP и WordPress API
Если вы хотите точечно контролировать функционал и интегрировать отзывы в тему или плагин, можно сделать это самостоятельно с помощью Custom Post Type и метаполей.
Регистрация типа записи «Отзыв»
Добавьте в файл functions.php вашей темы следующий код для создания CPT «review»:
function wpvip_register_cpt_review() {
$labels = array(
'name' => 'Отзывы',
'singular_name' => 'Отзыв',
'add_new' => 'Добавить отзыв',
'add_new_item' => 'Добавить новый отзыв',
'edit_item' => 'Редактировать отзыв',
'all_items' => 'Все отзывы',
'menu_name' => 'Отзывы'
);
$args = array(
'labels' => $labels,
'public' => true,
'has_archive' => false,
'supports' => array('title', 'editor'),
'show_in_rest' => true
);
register_post_type('review', $args);
}
add_action('init', 'wpvip_register_cpt_review');
Добавление метаполя для оценки
Для хранения оценки добавим метаполе с числом от 1 до 5.
function wpvip_add_meta_boxes_review() {
add_meta_box('wpvip_review_rating', 'Оценка (1-5)', 'wpvip_review_rating_callback', 'review', 'side');
}
add_action('add_meta_boxes', 'wpvip_add_meta_boxes_review');
function wpvip_review_rating_callback($post) {
$value = get_post_meta($post->ID, '_wpvip_review_rating', true);
echo '<input type="number" name="wpvip_review_rating" min="1" max="5" value="' . esc_attr($value) . '" />';
}
function wpvip_save_review_rating($post_id) {
if (array_key_exists('wpvip_review_rating', $_POST)) {
$rating = intval($_POST['wpvip_review_rating']);
if ($rating < 1) $rating = 1;
if ($rating > 5) $rating = 5;
update_post_meta($post_id, '_wpvip_review_rating', $rating);
}
}
add_action('save_post_review', 'wpvip_save_review_rating');
Вывод отзывов с оценками на странице
Чтобы вывести отзывы с оценками, используйте WP_Query и шаблонный код:
$args = array(
'post_type' => 'review',
'posts_per_page' => 10,
'orderby' => 'date',
'order' => 'DESC'
);
$reviews_query = new WP_Query($args);
if ($reviews_query->have_posts()) {
echo '<div class="wpvip-reviews">';
while ($reviews_query->have_posts()) {
$reviews_query->the_post();
$rating = get_post_meta(get_the_ID(), '_wpvip_review_rating', true);
echo '<div class="review-item">';
echo '<h3>' . get_the_title() . '</h3>';
echo '<div class="review-content">' . get_the_content() . '</div>';
echo '<div class="review-rating">Оценка: ' . intval($rating) . ' из 5</div>';
echo '</div>';
}
echo '</div>';
wp_reset_postdata();
} else {
echo '<p>Нет отзывов.</p>';
}
Как защитить отзывы от спама и накруток
При открытом приёме отзывов важно защититься от спама и накруток. Вот несколько рекомендаций:
- Добавьте CAPTCHA (например, Google reCAPTCHA) на форму отправки отзывов.
- Используйте проверку по email — отправляйте ссылку для подтверждения перед публикацией.
- Модерируйте отзывы вручную или автоматически (например, с помощью плагина Akismet).
- Ограничьте частоту отправки отзывов с одного IP.
Плагин WPRemark может помочь с организацией отзывов и антиспамом, если хотите готовое решение с расширенными возможностями.
Вывод структурированных данных для SEO
Чтобы отзывы с оценками индексировались поисковиками и отображались в виде «звёздочек» в сниппетах, нужно добавить микроразметку Schema.org.
Пример добавления JSON-LD в шаблоне вывода отзыва:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Review",
"author": ""<?php echo get_the_author(); ?>"",
"datePublished": ""<?php echo get_the_date('c'); ?>"",
"reviewBody": ""<?php echo get_the_content(); ?>"",
"reviewRating": {
"@type": "Rating",
"ratingValue": ""<?php echo intval($rating); ?>"",
"bestRating": "5"
},
"itemReviewed": {
"@type": "Thing",
"name": "Название продукта или услуги"
}
}
</script>
Это позволит улучшить выдачу и привлечь больше клиентов.
Итоги
Добавление отзывов с оценками в WordPress — задача, которую можно решить как быстро с помощью плагинов, так и гибко реализовать самостоятельно. Важно продумать защиту от спама и SEO-оптимизацию. Используйте наши рекомендации и примеры кода для создания надёжного и удобного функционала отзывов на своем сайте.