Автоматический импорт отзывов — востребованная задача для сайтов на WordPress, особенно для магазинов, сервисов и блогов с большим количеством комментариев и отзывов. В этой статье мы подробно разберём, как организовать импорт отзывов из внешних источников в WordPress, чтобы экономить время и поддерживать актуальность контента.
Зачем нужен автоматический импорт отзывов
Ручной ввод отзывов занимает много времени и не всегда возможен для больших площадок. Автоматизация позволяет:
- Регулярно обновлять отзывы с внешних сервисов (например, Google Reviews, Яндекс.Маркет, соцсети);
- Поддерживать актуальность и свежесть контента на сайте;
- Увеличивать доверие посетителей за счёт большого количества отзывов;
- Снижать нагрузку на администраторов сайта.
Для реализации можно использовать плагины, либо создавать кастомные скрипты на PHP с использованием REST API источников отзывов.
Примеры плагинов для импорта отзывов
1. WP Customer Reviews
Простой и бесплатный плагин, который позволяет собирать отзывы прямо на сайте, а также импортировать их. Поддерживает фильтрацию и модерацию.
Ссылка на плагин: WP Customer Reviews
2. Reviews Importer
Плагин для импорта отзывов из CSV или XML файлов. Удобен, если отзывы поступают из CRM или внешних баз данных.
Подробнее: Reviews Importer на WPSHOP
3. Google My Business Reviews
Плагин для автоматического вывода отзывов из Google My Business. Позволяет настраивать отображение и фильтрацию.
Подробнее на официальном сайте WordPress.
Создание собственного скрипта для импорта отзывов через API
Пример ниже показывает, как можно автоматически импортировать отзывы из внешнего JSON API и добавлять их в базу WordPress как комментарии к постам.
Подготовка и настройка
Для примера возьмём гипотетический API, который отдаёт список отзывов в формате JSON по адресу https://example.com/api/reviews. Каждый отзыв содержит поля: author, content, date, post_id.
Пример кода импорта
function wpmoney_import_reviews() {
$response = wp_remote_get('https://example.com/api/reviews');
if (is_wp_error($response)) {
error_log('Ошибка при получении отзывов');
return;
}
$body = wp_remote_retrieve_body($response);
$reviews = json_decode($body, true);
if (empty($reviews)) {
error_log('Отзывов не найдено или неверный формат');
return;
}
foreach ($reviews as $review) {
// Проверяем, есть ли уже такой отзыв по содержимому и автору
$existing = get_comments(array(
'author_email' => sanitize_email($review['author_email'] ?? ''),
'content' => sanitize_text_field($review['content']),
'post_id' => intval($review['post_id']),
'count' => true
));
if ($existing > 0) {
continue; // Такой отзыв уже есть
}
// Создаём массив данных для комментария
$commentdata = array(
'comment_post_ID' => intval($review['post_id']),
'comment_author' => sanitize_text_field($review['author']),
'comment_author_email' => sanitize_email($review['author_email'] ?? ''),
'comment_content' => sanitize_textarea_field($review['content']),
'comment_date' => sanitize_text_field($review['date']),
'comment_approved' => 1,
);
wp_insert_comment($commentdata);
}
}
// Запускаем функцию по крону или вручную
add_action('wpmoney_import_reviews_cron', 'wpmoney_import_reviews');Этот код следует запускать регулярно, например, через WP-Cron, чтобы импортировать новые отзывы автоматически.
Настройка WP-Cron для регулярного запуска импорта
Чтобы автоматизировать импорт, нужно настроить событие WP-Cron, которое будет вызывать функцию каждую ночь:
function wpmoney_setup_import_cron() {
if (!wp_next_scheduled('wpmoney_import_reviews_cron')) {
wp_schedule_event(time(), 'daily', 'wpmoney_import_reviews_cron');
}
}
add_action('wp', 'wpmoney_setup_import_cron');Это гарантирует, что функция wpmoney_import_reviews будет запускаться ежедневно и обновлять отзывы.
Обработка ошибок и логирование
При работе с внешними API важно учитывать возможные ошибки (превышение лимитов, недоступность сервиса). В приведённом примере ошибки записываются в файл логов через error_log. Для более продвинутого решения можно использовать плагин Clearfy Pro, который помогает управлять логами и оптимизировать работу сайта.
Вывод отзывов на сайте с кастомным оформлением
После импорта отзывы появляются как обычные комментарии. Для их отображения можно создать отдельный шаблон или использовать шорткод, который выведет отзывы с нужными фильтрами.
function wpmoney_show_reviews($atts) {
$atts = shortcode_atts(array(
'post_id' => get_the_ID(),
'number' => 10,
), $atts, 'wpmoney_reviews');
$comments = get_comments(array(
'post_id' => intval($atts['post_id']),
'number' => intval($atts['number']),
'status' => 'approve',
));
if (empty($comments)) {
return '<p>Отзывов пока нет.</p>';
}
$output = '<div class="wpmoney-reviews">';
foreach ($comments as $comment) {
$output .= '<div class="review-item">';
$output .= '<strong>' . esc_html($comment->comment_author) . '</strong>';
$output .= '<p>' . esc_html($comment->comment_content) . '</p>';
$output .= '<small>' . esc_html(date('d.m.Y', strtotime($comment->comment_date))) . '</small>';
$output .= '</div>';
}
$output .= '</div>';
return $output;
}
add_shortcode('wpmoney_reviews', 'wpmoney_show_reviews');Этот шорткод [wpmoney_reviews] можно вставлять в нужные страницы или записи, чтобы выводить отзывы.
Заключение
Автоматический импорт отзывов в WordPress — мощный инструмент для поддержки и увеличения доверия пользователей. Используя плагины или собственный код с API, вы можете эффективно интегрировать отзывы из разных источников. Ключевые моменты — регулярность обновления, обработка ошибок и удобный вывод отзывов на сайте.
Для более сложных интеграций рекомендуем изучить возможности плагинов на WPSHOP.