Отображение отзывов пользователей — важный элемент любого современного сайта на WordPress, особенно если вы хотите повысить доверие посетителей и улучшить конверсию. Вместо классического ручного добавления отзывов есть возможность автоматизировать этот процесс с помощью REST API WordPress. В этой статье мы подробно разберём, как реализовать автоматическое получение и вывод отзывов через REST API, а также рассмотрим полезные плагины и примеры кода.
Что такое REST API в WordPress и зачем он нужен для отзывов
REST API — это интерфейс взаимодействия с сайтом через HTTP-запросы. С его помощью можно получать, создавать, изменять и удалять данные WordPress — посты, страницы, пользовательские типы записей и метаданные. Для отзывов, реализованных как отдельный тип записей или пользовательские поля, REST API позволяет:
- Автоматически получать актуальные отзывы без ручного обновления страниц.
- Интегрировать отзывы с внешними сервисами или мобильными приложениями.
- Создавать удобный и динамичный интерфейс с помощью JavaScript (React, Vue и др.).
Использование REST API решает задачу обновления отзывов в режиме реального времени и упрощает их модерацию.
Создание пользовательского типа записей для отзывов с поддержкой REST API
Чтобы отзывы были удобны для работы через API, лучше всего создать отдельный тип записей review. В functions.php вашей темы или в отдельном плагине добавьте следующий код:
function wptour_register_post_type_review() {
$args = [
'label' => 'Отзывы',
'public' => true,
'show_in_rest' => true, // Включаем поддержку REST API
'supports' => ['title', 'editor', 'author', 'custom-fields'],
'has_archive' => true,
];
register_post_type('wptour_review', $args);
}
add_action('init', 'wptour_register_post_type_review');Параметр show_in_rest позволяет работать с этим типом записей через REST API. После регистрации вы сможете создавать отзывы в админке и получать их через запросы к API.
Добавление пользовательских полей для оценки и дополнительной информации
Часто отзывы содержат рейтинг, дату, фото и другие данные. Для этого используйте метаполя. Пример регистрации метаполя рейтинга с REST API:
function wptour_register_review_meta() {
register_post_meta('wptour_review', 'rating', [
'type' => 'integer',
'single' => true,
'show_in_rest' => true, // В REST API будет доступно
'sanitize_callback' => 'absint',
]);
}
add_action('init', 'wptour_register_review_meta');Теперь при запросах API будет возвращаться и поле рейтинга.
Получение и отображение отзывов через REST API на стороне фронтенда
Для динамического вывода отзывов можно использовать JavaScript. Пример запроса к REST API для получения последних 5 отзывов:
fetch('/wp-json/wp/v2/wptour_review?per_page=5')
.then(response => response.json())
.then(data => {
const container = document.getElementById('wptour-reviews');
data.forEach(review => {
const rating = review.meta?.rating || 0;
const html = `<div class="review"><h3>${review.title.rendered}</h3><p>${review.content.rendered}</p><div>Рейтинг: ${rating} / 5</div></div>`;
container.insertAdjacentHTML('beforeend', html);
});
});В HTML-коде вашей страницы добавьте контейнер для отзывов:
<div id="wptour-reviews"></div>Такой подход позволяет загружать отзывы асинхронно, не перегружая страницу.
Плагины для управления и автоматизации отзывов в WordPress
Если не хочется писать код, обратите внимание на готовые решения:
- WP Customer Reviews — простой плагин для сбора отзывов с возможностью модерации и отображения через шорткод.
- Site Reviews — мощный инструмент с поддержкой REST API, рейтингами и настройками вывода.
- Expert Review от WPSHOP — плагин для создания отзывов с расширенными функциями, включая интеграцию с REST API и автоматическое отображение.
Для интеграции с Expert Review воспользуйтесь официальной документацией и подключайте отзывы через REST API для динамического вывода на страницах.
Расширение функционала: фильтрация и пагинация отзывов через REST API
REST API позволяет делать запросы с параметрами для фильтрации, сортировки и пагинации. Например, получить отзывы с рейтингом не ниже 4:
fetch('/wp-json/wp/v2/wptour_review?meta_key=rating&meta_value=4&meta_compare=%3E%3D&per_page=5')Чтобы добавить поддержку таких запросов, можно расширить стандартный REST API с помощью фильтров:
function wptour_add_rest_filters($args, $request) {
if (!empty($request['meta_key']) && !empty($request['meta_value'])) {
$args['meta_query'] = [[
'key' => sanitize_text_field($request['meta_key']),
'value' => sanitize_text_field($request['meta_value']),
'compare' => $request->get_param('meta_compare') ?: '=',
]];
}
return $args;
}
add_filter('rest_wptour_review_query', 'wptour_add_rest_filters', 10, 2);Так вы сможете гибко управлять выводом отзывов по различным критериям.
Практические советы по безопасности и производительности
При работе с REST API и отзывами стоит учитывать:
- Проверяйте права доступа при создании и редактировании отзывов через API.
- Используйте кэширование ответов API для снижения нагрузки на сервер.
- Не выводите на фронтенд избыточные данные — ограничивайте поля, которые возвращаются.
- Защищайте формы добавления отзывов с помощью nonce и CAPTCHA.
Это поможет избежать спама и обеспечит стабильную работу сайта.
Таким образом, использование REST API для отзывов в WordPress — мощный инструмент для создания динамичного, удобного и современного функционала. Воспользуйтесь примерами из статьи и плагинами с WPSHOP.ru для быстрого старта и автоматизации.