Как создать оценку публикации в WordPress с помощью WPRemark

Оценка публикаций — мощный инструмент вовлечения аудитории и сбора обратной связи. В этой статье мы подробно разберём, как создать систему оценки статьи в WordPress, используя плагин WPRemark, а также добавим кастомные функции для расширения возможностей.

Почему стоит использовать WPRemark для оценки публикаций в WordPress

WPRemark — это современный плагин для создания отзывов, оценок и комментариев с гибкими настройками. Он позволяет легко внедрить различные виды оценок: звёздочки, баллы, смайлы и прочее. Благодаря интеграции с REST API и удобному интерфейсу, плагин подходит как для новичков, так и для продвинутых пользователей.

Основные преимущества WPRemark:

  • Поддержка нескольких типов оценок (звезды, баллы, проценты);
  • Возможность объединять оценки с комментариями;
  • Настраиваемые шаблоны вывода;
  • Интеграция с Gutenberg и классическим редактором;
  • API для разработки собственных функций.

Все это делает WPRemark отличным выбором для создания оценки публикаций на вашем сайте.

Настройка WPRemark для оценки публикаций

Установка и базовая настройка

Для начала установите плагин WPRemark через админку WordPress: Плагины > Добавить новый > Поиск WPRemark > Установить > Активировать.

После активации перейдите в раздел WPRemark > Настройки и выберите тип оценки, который хотите использовать. Для публикаций обычно подходят звёздочки или баллы.

Добавление оценки на страницу публикации

WPRemark автоматически добавляет блок оценки в конце публикаций, но вы можете вставить оценку вручную в нужное место с помощью шорткода:

[wpremark_rating post_id="123"]

Где post_id — ID публикации. Для динамической вставки можно использовать PHP-код в шаблоне темы:

<?php echo do_shortcode('[wpremark_rating post_id=' . get_the_ID() . ']'); ?>

Расширение функционала: создание кастомного обработчика оценок

Иногда стандартных функций WPRemark недостаточно, и требуется доработать логику оценки. Например, реализуем подсчёт средней оценки с дополнительной фильтрацией по дате и пользователю.

Пример функции для получения средней оценки публикации

function wppolls_get_average_rating($post_id) {
    global $wpdb;
    $table = $wpdb->prefix . 'wpremark_ratings'; // Таблица с оценками

    $query = $wpdb->prepare(
        "SELECT AVG(rating) FROM $table WHERE post_id = %d",
        $post_id
    );

    $average = $wpdb->get_var($query);

    return $average ? round($average, 2) : 0;
}

Эта функция обращается напрямую к базе данных WPRemark и возвращает среднее значение рейтинга для заданной публикации.

Вывод средней оценки в шаблоне публикации

<?php
$average_rating = wppolls_get_average_rating(get_the_ID());
echo '<div class="average-rating">Средняя оценка: ' . esc_html($average_rating) . '</div>';
?>

Добавьте этот код в файл single.php вашей темы, чтобы отображать среднюю оценку под содержимым публикации.

Защита от накруток и улучшение UX

Запрет повторного голосования

WPRemark по умолчанию использует куки для ограничения повторного голосования, но можно усилить защиту, добавив проверку по IP и ID пользователя.

function wppolls_prevent_duplicate_vote($post_id, $user_id, $user_ip) {
    global $wpdb;
    $table = $wpdb->prefix . 'wpremark_ratings';

    $query = $wpdb->prepare(
        "SELECT COUNT(*) FROM $table WHERE post_id = %d AND (user_id = %d OR user_ip = %s)",
        $post_id, $user_id, $user_ip
    );

    $count = $wpdb->get_var($query);

    return $count > 0; // true если уже голосовал
}

Вызывайте эту функцию перед сохранением новой оценки и блокируйте повторное голосование.

Улучшение интерфейса

Для повышения удобства пользователей можно добавить AJAX-голосование, чтобы оценка обновлялась без перезагрузки страницы. Для этого используйте встроенный REST API WPRemark или создайте собственный обработчик с помощью admin-ajax.php.

Пример AJAX-запроса для отправки оценки:

jQuery(document).ready(function($) {
    $('.wpremark-rating-star').on('click', function() {
        var rating = $(this).data('value');
        var post_id = $(this).data('post');

        $.ajax({
            url: wpremark_ajax_object.ajax_url,
            type: 'POST',
            data: {
                action: 'wppolls_submit_rating',
                post_id: post_id,
                rating: rating
            },
            success: function(response) {
                alert('Спасибо за вашу оценку!');
                // Обновить отображение рейтинга
            }
        });
    });
});

Не забудьте зарегистрировать обработчик в PHP:

add_action('wp_ajax_wppolls_submit_rating', 'wppolls_handle_ajax_rating');
add_action('wp_ajax_nopriv_wppolls_submit_rating', 'wppolls_handle_ajax_rating');

function wppolls_handle_ajax_rating() {
    $post_id = intval($_POST['post_id']);
    $rating = intval($_POST['rating']);
    $user_id = get_current_user_id();
    $user_ip = $_SERVER['REMOTE_ADDR'];

    if (wppolls_prevent_duplicate_vote($post_id, $user_id, $user_ip)) {
        wp_send_json_error('Вы уже голосовали.');
    }

    // Сохранение оценки через WPRemark API или вручную
    // Пример с WPRemark:
    if (function_exists('wpremark_save_rating')) {
        wpremark_save_rating($post_id, $rating, $user_id, $user_ip);
        wp_send_json_success('Оценка принята.');
    } else {
        wp_send_json_error('Ошибка сохранения оценки.');
    }

    wp_die();
}

Дополнительные плагины для расширения оценки публикаций

Если WPRemark не покрывает все ваши задачи, рассмотрите следующие плагины для интеграции с оценками:

  • Expert Review — мощный плагин для отзывов с оценками по нескольким критериям;
  • WPRemark — если хотите расширить базовый функционал;
  • JournalX — тема с интегрированными отзывами и рейтингами, если планируете смену дизайна.

Итоги

Создание оценки публикаций в WordPress с помощью WPRemark — это практичное и гибкое решение. Вы получаете удобный интерфейс для пользователей, подробную аналитику и возможность кастомизации под задачи проекта. Дополнительные доработки через код и AJAX обеспечат расширенный функционал и защиту от накруток. Используйте примеры из статьи, чтобы быстро внедрить и адаптировать систему оценки под свой сайт.

Как создать расписание публикаций в WordPress: полный гайд
30.11.2025
Как создать опрос с ветвлением в WordPress
21.02.2026
Как удалить все голосования в WordPress за один шаг
17.04.2026
Как автоматизировать удалённую модерацию опросов в WordPress
06.03.2026
Как создать многоэтапный опрос в WordPress с помощью кода
24.01.2026