YARPP и WooCommerce: подбор связанных товаров для интернет-магазина

Для многих владельцев интернет-магазинов на WordPress с WooCommerce важно улучшить пользовательский опыт за счёт показа релевантных связанных товаров. Плагин YARPP (Yet Another Related Posts Plugin) отлично справляется с подбором связанных записей, но для товаров WooCommerce его нужно правильно настроить и доработать, чтобы получить максимально релевантный подбор. В этой статье мы разберём, как интегрировать YARPP с WooCommerce, как настроить фильтры и шаблоны вывода, а также приведём примеры кода для кастомизации.

Почему стандартный YARPP не всегда отлично работает с WooCommerce

YARPP изначально рассчитан на подбор связанных записей, таких как статьи и страницы. В WooCommerce товары — это кастомный тип записей product, и у них есть специфичные мета-данные, например, цена, атрибуты, категории товара и т.п. Стандартный алгоритм YARPP может не учитывать эти особенности, поэтому связанные товары могут быть нерелевантны.

Например, если вы просто настроите YARPP для типа записи product, он будет искать совпадения по заголовкам, тегам и категориям, но не сможет учитывать цену или атрибуты, что важно для интернет-магазина.

Чтобы улучшить подбор, необходимо использовать хуки YARPP и добавить собственные фильтры, которые будут учитывать специфичные данные WooCommerce.

Настройка YARPP для работы с WooCommerce

Добавление поддержки типа записи product

Первое, что нужно сделать — добавить в настройки YARPP поддержку для типа записи product. Для этого в файле functions.php вашей темы или в кастомном плагине добавьте следующий код:

function yarpp_add_product_post_type($post_types) {
    $post_types[] = 'product';
    return $post_types;
}
add_filter('yarpp_supported_types', 'yarpp_add_product_post_type');

Этот фильтр расширит список типов записей, для которых YARPP будет искать связанные записи.

Фильтрация связанных товаров по категориям WooCommerce

WooCommerce использует таксономию product_cat для категорий товаров. Чтобы YARPP учитывал именно эти категории, добавим фильтр на формирование запроса:

function yarpp_filter_query_args_for_products($query_args, $post) {
    if ($post->post_type === 'product') {
        $query_args['tax_query'] = array(
            array(
                'taxonomy' => 'product_cat',
                'field' => 'term_id',
                'terms' => wp_get_post_terms($post->ID, 'product_cat', array('fields' => 'ids')),
                'operator' => 'IN',
            ),
        );
    }
    return $query_args;
}
add_filter('yarpp_query_args', 'yarpp_filter_query_args_for_products', 10, 2);

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

Учет атрибутов и других мета-данных

Чтобы повысить релевантность, можно добавить дополнительную фильтрацию по атрибутам товара. Например, если у вас есть атрибут «Цвет», можно показывать связанные товары с тем же цветом.

Добавим в запрос кастомное условие по мета-ключу:

function yarpp_filter_meta_query_for_products($query_args, $post) {
    if ($post->post_type === 'product') {
        $color = get_post_meta($post->ID, 'pa_color', true); // pa_color - слаг атрибута цвета
        if ($color) {
            if (!isset($query_args['meta_query'])) {
                $query_args['meta_query'] = array();
            }
            $query_args['meta_query'][] = array(
                'key' => 'pa_color',
                'value' => $color,
                'compare' => '=',
            );
        }
    }
    return $query_args;
}
add_filter('yarpp_query_args', 'yarpp_filter_meta_query_for_products', 20, 2);

Обратите внимание, что мета-данные атрибутов могут храниться по-разному в вашей базе, уточните это в документации WooCommerce или в базе данных.

Кастомизация шаблона вывода связанных товаров YARPP

Для интернет-магазина важно не просто показать список заголовков, а красиво оформить связанные товары с изображениями, ценами и кнопками «В корзину».

Создайте файл шаблона yarpp-template-product.php в каталоге вашей темы и добавьте туда примерно такой код:

<ul class="yarpp-related-products">
<?php foreach ($related_posts as $related) : ?>
    <li class="related-product-item">
        <a href="<?php echo get_permalink($related->ID); ?>">
            <?php echo get_the_post_thumbnail($related->ID, 'thumbnail'); ?>
            <h4><?php echo esc_html(get_the_title($related->ID)); ?></h4>
        </a>
        <span class="price"><?php echo wc_price(get_post_meta($related->ID, '_price', true)); ?></span>
        <?php echo do_shortcode('[add_to_cart id="' . $related->ID . '"]'); ?>
    </li>
<?php endforeach; ?>
</ul>

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

Советы по оптимизации и кешированию

Подбор связанных товаров — ресурсозатратная задача, особенно на больших магазинах. Чтобы избежать тормозов, рекомендуется:

  • Использовать кеширование результатов YARPP (в его настройках есть опция кеширования);
  • Ограничить количество связанных товаров, например, до 5;
  • Использовать транзиенты WordPress для кэширования результатов кастомных запросов;
  • При необходимости применить внешние сервисы кеширования, например, Redis.

Ниже пример простого кэширования в функции, расширяющей запрос YARPP:

function yarpp_query_args_with_cache($query_args, $post) {
    $cache_key = 'yarpp_products_' . $post->ID;
    $cached = get_transient($cache_key);
    if ($cached !== false) {
        return $cached;
    }

    // Ваши модификации $query_args...

    set_transient($cache_key, $query_args, HOUR_IN_SECONDS);
    return $query_args;
}
add_filter('yarpp_query_args', 'yarpp_query_args_with_cache', 30, 2);

Полезные плагины для расширения функционала

Кроме YARPP, существуют плагины, которые помогают улучшить подбор товаров и их отображение:

  • Clearfy Pro — оптимизация и очистка WordPress, улучшает скорость;
  • WPRemark — расширенные отзывы и рейтинги для товаров, помогают повысить конверсию;
  • Тема Bono — современный дизайн для WooCommerce с адаптивным выводом товаров.

Вывод

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

Добавь в закладки и поделись с друзьями:

⭐⭐⭐⭐⭐
WooCommerce: как исключить товары по метаданным из списка связанных товаров
04.05.2026
Как добавить автоматическое открытие и закрытие аккордеона в WordPress
14.03.2026
YARPP и WooCommerce: как сделать подбор связанных товаров в интернет-магазине
22.01.2026
Как использовать YARPP для кастомных типов записей в WordPress
04.02.2026
Использование YarnN для улучшения автоподбора связанных записей в WordPress
19.12.2025
×

Пора действовать!

Скидки на
WordPress!

-20%
на премиум темы

Успей купить ⋙