Как создать простой шорткод для вывода отзывов в WordPress

|

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

Почему стоит создать собственный шорткод для отзывов?

Готовые плагины для отзывов часто перегружают сайт лишним кодом и функционалом, который не всегда нужен. Создавая собственный шорткод, вы получаете легкий и понятный инструмент, который можно адаптировать под задачи проекта. Кроме того, вы полностью контролируете вывод и стилизацию отзывов.

Основные преимущества собственного шорткода:

Далее покажем пример создания простого шорткода для вывода отзывов, где отзывы будут храниться как записи типа review.

Создание пользовательского типа записей для отзывов

Для удобства управления отзывами испольуем register_post_type. Добавьте следующий код в файл functions.php вашей темы или в отдельный плагин:

function wpreboot_register_review_post_type() {
    $labels = array(
        'name' => 'Отзывы',
        'singular_name' => 'Отзыв',
        'add_new' => 'Добавить отзыв',
        'add_new_item' => 'Добавить новый отзыв',
        'edit_item' => 'Редактировать отзыв',
        'new_item' => 'Новый отзыв',
        'view_item' => 'Просмотреть отзыв',
        'search_items' => 'Поиск отзывов',
        'not_found' => 'Отзывы не найдены',
        'not_found_in_trash' => 'В корзине отзывы не найдены',
    );
    $args = array(
        'labels' => $labels,
        'public' => true,
        'has_archive' => false,
        'supports' => array('title', 'editor', 'author'),
        'menu_position' => 20,
        'menu_icon' => 'dashicons-testimonial',
        'rewrite' => array('slug' => 'reviews'),
    );
    register_post_type('review', $args);
}
add_action('init', 'wpreboot_register_review_post_type');

Этот код создаст новый тип записей «Отзывы» с базовыми полями заголовка и содержимого. Вы сможете добавлять отзывы через админку WordPress.

Создаем шорткод для вывода отзывов

Теперь реализуем функцию, которая будет выводить список отзывов по шорткоду [wpreboot_reviews]. Добавьте в functions.php следующий код:

function wpreboot_reviews_shortcode($atts) {
    $atts = shortcode_atts(array(
        'count' => 5,
        'order' => 'DESC',
        'orderby' => 'date',
    ), $atts, 'wpreboot_reviews');

    $args = array(
        'post_type' => 'review',
        'posts_per_page' => intval($atts['count']),
        'order' => $atts['order'],
        'orderby' => $atts['orderby'],
    );

    $query = new WP_Query($args);
    if (!$query->have_posts()) {
        return '<p>Отзывы пока отсутствуют.</p>';
    }

    $output = '<div class="wpreboot-reviews">';
    while ($query->have_posts()) {
        $query->the_post();
        $output .= '<div class="wpreboot-review-item">';
        $output .= '<h3 class="wpreboot-review-title">' . get_the_title() . '</h3>';
        $output .= '<div class="wpreboot-review-content">' . get_the_content() . '</div>';
        $output .= '<span class="wpreboot-review-author">Автор: ' . get_the_author() . '</span>';
        $output .= '</div>';
    }
    $output .= '</div>';
    wp_reset_postdata();
    return $output;
}
add_shortcode('wpreboot_reviews', 'wpreboot_reviews_shortcode');

Этот шорткод принимает параметры:

Вы можете вставить [wpreboot_reviews count=3 order="ASC"] в любой пост или страницу для вывода отзывов.

Добавляем кастомные поля для оценки и даты

Чтобы отзывы выглядели информативнее, полезно добавить оценку и дату посещения. Для этого используйте кастомные поля (Custom Fields) или метаполя. Рассмотрим пример с использованием метаполей:

  1. В админке при добавлении отзыва добавьте метаполя rating (число от 1 до 5) и visit_date (дата).
  2. Для удобства создайте метабоксы с помощью плагина Advanced Custom Fields или вручную.

Для вывода этих полей изменим функцию шорткода:

function wpreboot_reviews_shortcode($atts) {
    $atts = shortcode_atts(array(
        'count' => 5,
        'order' => 'DESC',
        'orderby' => 'date',
    ), $atts, 'wpreboot_reviews');

    $args = array(
        'post_type' => 'review',
        'posts_per_page' => intval($atts['count']),
        'order' => $atts['order'],
        'orderby' => $atts['orderby'],
    );

    $query = new WP_Query($args);
    if (!$query->have_posts()) {
        return '<p>Отзывы пока отсутствуют.</p>';
    }

    $output = '<div class="wpreboot-reviews">';
    while ($query->have_posts()) {
        $query->the_post();
        $rating = get_post_meta(get_the_ID(), 'rating', true);
        $visit_date = get_post_meta(get_the_ID(), 'visit_date', true);
        $output .= '<div class="wpreboot-review-item">';
        $output .= '<h3 class="wpreboot-review-title">' . get_the_title() . '</h3>';
        $output .= '<div class="wpreboot-review-content">' . get_the_content() . '</div>';
        if ($rating) {
            $output .= '<div class="wpreboot-review-rating">Оценка: ' . intval($rating) . ' из 5</div>';
        }
        if ($visit_date) {
            $output .= '<div class="wpreboot-review-date">Дата посещения: ' . esc_html($visit_date) . '</div>';
        }
        $output .= '<span class="wpreboot-review-author">Автор: ' . get_the_author() . '</span>';
        $output .= '</div>';
    }
    $output .= '</div>';
    wp_reset_postdata();
    return $output;
}

Этот код выводит дополнительные данные, если они заполнены в записи отзыва.

Как стилизовать отзывы и сделать их удобочитаемыми

Для красивого отображения отзывов добавьте CSS в файл стилей темы или через кастомайзер:

.wpreboot-reviews {
    background: #f9f9f9;
    padding: 20px;
    border-radius: 8px;
}
.wpreboot-review-item {
    background: #fff;
    padding: 15px;
    margin-bottom: 15px;
    border-left: 5px solid #0073aa;
}
.wpreboot-review-title {
    font-size: 18px;
    margin-bottom: 8px;
    color: #0073aa;
}
.wpreboot-review-content {
    font-size: 14px;
    margin-bottom: 10px;
}
.wpreboot-review-rating {
    font-weight: bold;
    color: #ffb400;
    margin-bottom: 5px;
}
.wpreboot-review-date {
    font-size: 12px;
    color: #666;
    margin-bottom: 5px;
}
.wpreboot-review-author {
    font-size: 12px;
    color: #333;
    font-style: italic;
}

Такая стилизация сделает отзывы аккуратными и читабельными на любом устройстве.

Расширение функционала с помощью плагинов WPSHOP

Если вам нужна более продвинутая система отзывов, можно использовать плагин Expert Review от WPSHOP. Он добавляет удобный интерфейс для управления оценками, комментариями и интеграцию с WooCommerce.

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

Итоги и советы по использованию шорткода отзывов

Создание собственного шорткода для отзывов позволяет контролировать весь процесс вывода и оформления пользовательского контента. Важно:

Такой подход обеспечит качественный и легко управляемый блок отзывов на вашем сайте WordPress.

Как добавить дополнительный тип записей (Custom Post Type) в WordPress без плагинов
19.02.2026
Как изменить URL пользовательского профиля в WordPress без потери SEO
09.02.2026
Как автоматически добавлять внутренние ссылки в постах WordPress
02.04.2026
Как добавить дополнительное поле в профиль пользователя WordPress: практическое руководство
28.11.2025
WooCommerce: как автоматически удалять отзывы о товарах через заданный период
30.04.2026
×
WordPress
дай сайту суперсилу!

Скидки на топовые темы и плагины

Активировать суперсилу ⋙