Как в WordPress изменить страницу результатов поиска по сайту?

Ссылка скопирована
1 ответ

Как в WordPress изменить страницу поисковой выдачи по товарам (плагин Woocommerce)?
По умолчанию на странице с результатами поиска в выдаче по запросу ФОТО + НАЗВАНИЕ ТОВАРА + КРАТКОЕ ОПИСАНИЕ

Как сделать ФОТО + НАЗВАНИЕ ТОВАРА + ОПИСАНИЕ ТОВАРА ОСНОВНОЕ ( краткое) ?
Или просто ФОТО + НАЗВАНИЕ ТОВАРА ?

Дело в том что мы в кратком описании используем кнопки на шорткодах и минимум информации
Выдача результата выглядит ужасно

Как в WordPress изменить страницу результатов поиска по сайту?

Дополнительно:

ФОТО + НАЗВАНИЕ ТОВАРА + КРАТКОЕ ОПИСАНИЕ

Как сделать ФОТО + НАЗВАНИЕ ТОВАРА + ОПИСАНИЕ ТОВАРА ОСНОВНОЕ ( краткое) ?

Найди 10 отличий :)

И матчасть https://woo.com/document/template-structure/

  • Как сделать ФОТО + НАЗВАНИЕ ТОВАРА + ОПИСАНИЕ ТОВАРА ОСНОВНОЕ ( краткое) ?

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

  • Нужно решить такую задачу?

    Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

    Заказать помощь
    Лучший ответ
    1
    Frontend-редакция Ответ

    Страница результатов поиска WooCommerce обычно использует те же шаблоны, что и архив товаров. Если в выдаче выводится краткое описание и из-за шорткодов карточки выглядят плохо, нужно править шаблон карточки товара или hooks WooCommerce, а не саму страницу поиска как обычную страницу WordPress.

    Если хотите убрать описание вообще, можно отключить excerpt в loop:

    remove_action('woocommerce_after_shop_loop_item_title', 'woocommerce_template_loop_rating', 5);

    remove_action('woocommerce_after_shop_loop_item_title', 'woocommerce_template_loop_rating', 5);

    Но краткое описание часто выводится темой, а не стандартным WooCommerce. Тогда нужно найти hook/настройку темы или переопределить шаблон content-product.php в дочерней теме.

    Если нужно вывести полное описание, но ограничить количество символов, можно сделать свою функцию:

    add_action('woocommerce_after_shop_loop_item_title', function () {
        if (!is_search()) {
            return;
        }
     
        global $product;
        $post = get_post($product->get_id());
        $text = wp_strip_all_tags($post->post_content);
        echo '<div class="product-search-excerpt">';
        echo esc_html(wp_trim_words($text, 24, '...'));
        echo '</div>';
    }, 20);

    add_action('woocommerce_after_shop_loop_item_title', function () { if (!is_search()) { return; } global $product; $post = get_post($product->get_id()); $text = wp_strip_all_tags($post->post_content); echo '<div class="product-search-excerpt">'; echo esc_html(wp_trim_words($text, 24, '...')); echo '</div>'; }, 20);

    Если тема уже выводит краткое описание, его сначала нужно отключить. У разных тем hook отличается, поэтому в WooCommerce-проектах часто проще переопределить шаблон:

    wp-content/themes/child-theme/woocommerce/content-product.php

    wp-content/themes/child-theme/woocommerce/content-product.php

    И там оставить только нужные элементы: изображение, заголовок, цену, кнопку, короткий фрагмент полного описания.

    Также можно сделать отдельную логику только для поиска:

    if (is_search() && is_post_type_archive('product')) {
        // вывод для результатов поиска товаров
    }

    if (is_search() && is_post_type_archive('product')) { // вывод для результатов поиска товаров }

    Итог: Вам нужно менять loop товара. Не вставляйте шорткоды из краткого описания в выдачу, если они ломают карточку. Либо уберите excerpt, либо выводите очищенный и обрезанный фрагмент полного описания через wp_trim_words().

    Другие ответы (0)

    Пока нет других ответов. Будьте первым, кто поможет автору.

    Ответить на вопрос

    комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *

    Вам также может быть интересно