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

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

Почему стоит использовать YARPP с WooCommerce

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

Использование YARPP в WooCommerce помогает получать:

  • Более релевантные рекомендации, основанные на содержимом и мета-данных товаров.
  • Гибкость в кастомизации шаблонов вывода связанных товаров.
  • Возможность расширения функционала за счёт хуков и фильтров YARPP.

Как включить поддержку WooCommerce в YARPP

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

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

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

Настройка шаблона вывода связанных товаров

YARPP позволяет создавать собственные шаблоны для вывода связанных записей. Для WooCommerce стоит сделать отдельный шаблон, чтобы вывести карточки товаров с ценой и кнопкой «Купить».

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

<?php
if (have_posts()) : ?>
    <ul class="yarpp-related-products">
    <?php while (have_posts()) : the_post(); ?>
        <li>
            <a href="<?php the_permalink(); ?>"><?php the_post_thumbnail('thumbnail'); ?></a>
            <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
            <span class="price"><?php echo $product = wc_get_product(get_the_ID()); echo $product->get_price_html(); ?></span>
            <?php woocommerce_template_loop_add_to_cart(); ?>
        </li>
    <?php endwhile; ?>
    </ul>
<?php endif; ?>

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

Оптимизация подбора связанных товаров с использованием мета-данных и таксономий

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

Используйте фильтр yarpp_get_related для расширения запроса. Пример, который добавляет ограничение по категории товаров:

function yarppru_filter_related_products($related_posts, $post) {
    if ('product' !== $post->post_type) {
        return $related_posts;
    }

    $terms = wp_get_post_terms($post->ID, 'product_cat', array('fields' => 'ids'));
    if (empty($terms)) {
        return $related_posts;
    }

    global $wpdb;
    $placeholders = implode(',', array_fill(0, count($terms), '%d'));

    $query = $wpdb->prepare(
        "SELECT DISTINCT p.ID FROM {$wpdb->posts} p
         INNER JOIN {$wpdb->term_relationships} tr ON p.ID = tr.object_id
         WHERE p.post_type = 'product'
         AND p.post_status = 'publish'
         AND tr.term_taxonomy_id IN ($placeholders)",
        ...$terms
    );

    $ids = $wpdb->get_col($query);

    return get_posts(array(
        'post__in' => $ids,
        'post_type' => 'product',
        'posts_per_page' => 5,
        'post__not_in' => array($post->ID),
    ));
}
add_filter('yarpp_get_related', 'yarppru_filter_related_products', 10, 2);

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

Использование плагина Clearfy Pro для оптимизации

Для улучшения производительности и снижения нагрузки на базу данных при использовании YARPP и WooCommerce рекомендуем использовать Clearfy Pro. Этот плагин умеет оптимизировать запросы, кэшировать результаты и отключать избыточные функции.

Динамическая подгрузка связанных товаров через AJAX

Чтобы не перегружать страницу и улучшить пользовательский опыт, можно реализовать подгрузку связанных товаров с помощью AJAX. Это особенно актуально при большом количестве товаров.

Пример реализации AJAX-подгрузки связанных товаров через YARPP:

function yarppru_enqueue_scripts() {
    wp_enqueue_script('yarppru-ajax', get_template_directory_uri() . '/js/yarppru-ajax.js', array('jquery'), '1.0', true);
    wp_localize_script('yarppru-ajax', 'yarppru_ajax', array(
        'ajax_url' => admin_url('admin-ajax.php'),
        'nonce' => wp_create_nonce('yarppru_nonce'),
    ));
}
add_action('wp_enqueue_scripts', 'yarppru_enqueue_scripts');

function yarppru_ajax_load_related() {
    check_ajax_referer('yarppru_nonce', 'nonce');

    $post_id = intval($_POST['post_id']);
    if (!$post_id) wp_send_json_error('Invalid post ID');

    $args = array(
        'post_type' => 'product',
        'posts_per_page' => 5,
        'post__not_in' => array($post_id),
        'yarpp' => true,
        'yarpp_post_id' => $post_id,
    );

    $related = new WP_Query($args);

    ob_start();
    if ($related->have_posts()) {
        echo '<ul class="yarpp-related-products">';
        while ($related->have_posts()) : $related->the_post();
            wc_get_template_part('content', 'product');
        endwhile;
        echo '</ul>';
    }
    wp_reset_postdata();

    $html = ob_get_clean();
    wp_send_json_success(array('html' => $html));
}
add_action('wp_ajax_yarppru_load_related', 'yarppru_ajax_load_related');
add_action('wp_ajax_nopriv_yarppru_load_related', 'yarppru_ajax_load_related');

В JS-файле yarppru-ajax.js реализуйте вызов AJAX и вставку результата в страницу. Такой подход разгружает сервер и повышает скорость загрузки.

Выводы и рекомендации

Интеграция YARPP с WooCommerce открывает новые возможности для повышения конверсии на сайте за счёт более точных рекомендаций связанных товаров. Важно не просто включить поддержку типа записи product, а грамотно настроить подбор с учётом категорий, тегов и атрибутов.

Используйте кастомные шаблоны для красивого и информативного вывода, оптимизируйте запросы через фильтры и применяйте AJAX-подгрузку для масштабируемости. Для улучшения производительности рассмотрите плагин Clearfy Pro.

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

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

⭐⭐⭐⭐⭐
Вывод связанных записей по пользователям в WordPress
29.03.2026
YARPP настройка и оптимизация подбора связанных записей в WordPress
10.11.2025
Вывод связанных записей по категориям с помощью кода в WordPress
26.03.2026
WooCommerce: как исключить товары по метаданным из списка связанных товаров
09.06.2026
WooCommerce: как исключить товары по метаданным из списка связанных товаров
12.06.2026
×

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

Скидки на
WordPress!

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

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