В современных проектах на WordPress отзывы пользователей играют ключевую роль для повышения доверия и улучшения конверсий. В этой статье мы подробно рассмотрим, как добавить автоматическое отображение отзывов на вашем сайте WordPress с помощью плагинов и собственного кода.
Почему важно автоматизировать отображение отзывов
Ручное добавление отзывов — это трудоемкий процесс, который сложно поддерживать при большом объеме комментариев или отзывов. Автоматизация позволяет:
- Автоматически выводить свежие отзывы на страницах сайта;
- Форматировать и структурировать отзывы для лучшего восприятия;
- Добавлять рейтинги и сортировать отзывы по дате или популярности;
- Экономить время на обновлении контента.
Для реализации этих задач мы рассмотрим несколько подходов: использование готовых плагинов и написание собственного кода с применением кастомных типов записей и шорткодов.
Использование плагина WPRemark для автоматического отображения отзывов
Плагин WPRemark — мощный инструмент для работы с отзывами на WordPress. Он поддерживает:
- Автоматический вывод отзывов;
- Рейтинги и голосование;
- Кастомные шаблоны вывода;
- Управление отзывами из админки.
После установки и активации плагина переходите к настройке шаблонов и размещению шорткодов на страницах, где хотите видеть отзывы.
Пример использования шорткода WPRemark для вывода последних отзывов
Добавьте в нужный материал или виджет следующий шорткод:
[wpremark_reviews limit=5 orderby="date" order="DESC"]
Этот шорткод выведет 5 последних отзывов, отсортированных по дате в порядке убывания.
Создаем собственный функционал отображения отзывов через кастомный тип записи
Если вы хотите полностью контролировать логику и внешний вид, можно создать кастомный тип записи wpbit_review и реализовать автоматический вывод через шорткод.
Регистрация кастомного типа записи отзывов
function wpbit_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' => 'В корзине отзывов не найдено',
'menu_name' => 'Отзывы'
);
$args = array(
'labels' => $labels,
'public' => true,
'has_archive' => false,
'show_in_menu' => true,
'supports' => array('title', 'editor', 'author', 'custom-fields'),
'capability_type' => 'post',
'rewrite' => array('slug' => 'reviews'),
);
register_post_type('wpbit_review', $args);
}
add_action('init', 'wpbit_register_review_cpt');
Этот код создаст новый тип записи «Отзывы» с возможностью добавлять заголовок, содержимое и метаполя.
Добавление шорткода для вывода отзывов
function wpbit_display_reviews_shortcode($atts) {
$atts = shortcode_atts(array(
'limit' => 5,
'orderby' => 'date',
'order' => 'DESC'
), $atts, 'wpbit_reviews');
$args = array(
'post_type' => 'wpbit_review',
'posts_per_page' => intval($atts['limit']),
'orderby' => sanitize_text_field($atts['orderby']),
'order' => sanitize_text_field($atts['order'])
);
$query = new WP_Query($args);
if (!$query->have_posts()) {
return '<p>Отзывов пока нет.</p>';
}
$output = '<div class="wpbit-reviews">';
while ($query->have_posts()) {
$query->the_post();
$content = get_the_content();
$author = get_the_title();
$output .= '<div class="wpbit-review-item">';
$output .= '<h3>' . esc_html($author) . '</h3>';
$output .= '<div class="wpbit-review-content">' . wp_kses_post(wpautop($content)) . '</div>';
$output .= '</div>';
}
$output .= '</div>';
wp_reset_postdata();
return $output;
}
add_shortcode('wpbit_reviews', 'wpbit_display_reviews_shortcode');
После добавления этого кода в functions.php вашей темы или в кастомный плагин можно вставлять шорткод [wpbit_reviews limit=3] для вывода последних трёх отзывов.
Расширение функционала: добавляем рейтинг и структурированные данные
Отзывы с рейтингом помогают посетителям быстро оценить качество товара или услуги. Для этого в кастомном типе записи можно добавить метаполе для оценки и вывести его в шаблоне.
Добавление метаполя рейтинга
function wpbit_add_review_meta_box() {
add_meta_box('wpbit_review_rating', 'Рейтинг отзыва', 'wpbit_review_rating_callback', 'wpbit_review', 'side', 'default');
}
add_action('add_meta_boxes', 'wpbit_add_review_meta_box');
function wpbit_review_rating_callback($post) {
$value = get_post_meta($post->ID, '_wpbit_review_rating', true);
echo '<label for="wpbit_review_rating_field">Рейтинг (от 1 до 5):</label>';
echo '<input type="number" id="wpbit_review_rating_field" name="wpbit_review_rating_field" value="' . esc_attr($value) . '" min="1" max="5" />';
}
function wpbit_save_review_rating($post_id) {
if (array_key_exists('wpbit_review_rating_field', $_POST)) {
update_post_meta($post_id, '_wpbit_review_rating', intval($_POST['wpbit_review_rating_field']));
}
}
add_action('save_post', 'wpbit_save_review_rating');
Этот код добавляет поле рейтинга в админку при редактировании отзывов.
Вывод рейтинга в шорткоде с микроразметкой
function wpbit_display_reviews_shortcode($atts) {
$atts = shortcode_atts(array(
'limit' => 5,
'orderby' => 'date',
'order' => 'DESC'
), $atts, 'wpbit_reviews');
$args = array(
'post_type' => 'wpbit_review',
'posts_per_page' => intval($atts['limit']),
'orderby' => sanitize_text_field($atts['orderby']),
'order' => sanitize_text_field($atts['order'])
);
$query = new WP_Query($args);
if (!$query->have_posts()) {
return '<p>Отзывов пока нет.</p>';
}
$output = '<div class="wpbit-reviews" itemscope itemtype="https://schema.org/Review">';
while ($query->have_posts()) {
$query->the_post();
$content = get_the_content();
$author = get_the_title();
$rating = get_post_meta(get_the_ID(), '_wpbit_review_rating', true);
$rating = $rating ? intval($rating) : 0;
$output .= '<div class="wpbit-review-item" itemprop="review" itemscope itemtype="https://schema.org/Review">';
$output .= '<h3 itemprop="author">' . esc_html($author) . '</h3>';
$output .= '<div class="wpbit-review-content" itemprop="reviewBody">' . wp_kses_post(wpautop($content)) . '</div>';
if ($rating > 0) {
$output .= '<div class="wpbit-review-rating" itemprop="reviewRating" itemscope itemtype="https://schema.org/Rating">';
$output .= 'Рейтинг: <span itemprop="ratingValue">' . $rating . '</span> / 5';
$output .= '</div>';
}
$output .= '</div>';
}
$output .= '</div>';
wp_reset_postdata();
return $output;
}
add_shortcode('wpbit_reviews', 'wpbit_display_reviews_shortcode');
Микроразметка Schema.org улучшит SEO и позволит отображать звезды рейтинга прямо в результатах поисковых систем.
Автоматизация сбора отзывов с помощью форм и интеграция с WPRemark
Чтобы автоматизировать сбор отзывов, можно использовать формы обратной связи, интегрированные с кастомным типом записи или плагином WPRemark.
Например, с помощью плагина WPRemark можно создать форму, которая автоматически публикует отзывы после модерации.
Пример простой формы на PHP для добавления отзыва в кастомный тип записи
function wpbit_handle_review_form() {
if (!isset($_POST['wpbit_review_nonce']) || !wp_verify_nonce($_POST['wpbit_review_nonce'], 'wpbit_submit_review')) {
return;
}
$author = sanitize_text_field($_POST['wpbit_review_author']);
$content = sanitize_textarea_field($_POST['wpbit_review_content']);
$rating = intval($_POST['wpbit_review_rating']);
$post_data = array(
'post_title' => $author,
'post_content' => $content,
'post_status' => 'pending', // Ожидание модерации
'post_type' => 'wpbit_review'
);
$post_id = wp_insert_post($post_data);
if ($post_id) {
update_post_meta($post_id, '_wpbit_review_rating', $rating);
}
}
add_action('init', 'wpbit_handle_review_form');
Далее нужно создать HTML-форму с полями для имени, текста отзыва и рейтинга, отправляющую данные методом POST на ту же страницу.
Заключение по теме автоматического отображения отзывов
Автоматизация отображения отзывов в WordPress — задача вполне решаемая как с помощью качественных плагинов, например, WPRemark, так и с помощью собственного кода. Создание кастомного типа записи и шорткода даёт гибкость и позволяет интегрировать дополнительные функции, такие как рейтинг и микроразметка. Автоматизация сбора отзывов через формы с последующей модерацией поможет поддерживать актуальный и полезный контент на сайте без лишних усилий.