WooCommerce

Как убрать последний элемент из хлебных крошек WooCommerce

M
Markabus
·
Фотореалистичный кадр с низкого ракурса: на потёртом дубовом столе дорожка настоящих хлебных крошек с обломком корочки ведёт к монитору и обрывается, не доходя до него, на экране в расфокусе страница товара с короткой полоской навигации вверху и крупной карточкой керамической кружки — иллюстрация к статье об удалении последнего элемента из хлебных крошек WooCommerce.

Стандартные хлебные крошки WooCommerce на странице товара выглядят так: Главная → Каталог → Категория → Название товара. Последний элемент — не ссылка, а просто текст, и он дублирует заголовок, который стоит строкой ниже. Многие темы и дизайнеры предпочитают обрывать цепочку на категории: так крошки короче, не ломаются на длинных названиях и не повторяют H1. Сделать это можно одним фильтром, не трогая шаблоны.

Как устроены крошки в WooCommerce

Крошки собирает класс WC_Breadcrumb: он проходит по текущей странице, накапливает массив элементов вида [ название, ссылка ] и перед выводом пропускает его через фильтр woocommerce_get_breadcrumb. Дальше массив отрисовывает шаблон global/breadcrumb.php. Фильтр получает уже готовый список, поэтому это самое удобное место, чтобы убрать, добавить или переименовать любой элемент — шаблон остаётся стандартным и не требует обновления при выходе новых версий WooCommerce.

Код: убираем последний элемент на странице товара

add_filter( 'woocommerce_get_breadcrumb', 'shop_remove_last_crumb', 20, 2 );
function shop_remove_last_crumb( $crumbs, $breadcrumb ) {
    // Только на странице товара и только если есть что убирать
    if ( is_product() && count( $crumbs ) > 1 ) {
        array_pop( $crumbs );
    }
    return $crumbs;
}

Код добавляется в functions.php дочерней темы. Условие is_product() ограничивает правку страницами товаров: на странице категории последний элемент — это сама категория, и её обычно оставляют. Проверка на количество элементов защищает от вырожденного случая, когда в массиве только «Главная»: убрать единственный элемент означало бы вывести пустую обёртку.

Если последний элемент нужно снимать везде — и на категориях, и на метках, и на страницах магазина, — уберите is_product() из условия. А если, наоборот, хочется оставить название товара, но оборвать его до разумной длины, замените array_pop на правку текста последнего элемента через wp_trim_words() или mb_strimwidth().

Что происходит с разметкой BreadcrumbList

WooCommerce выводит для крошек структурированные данные BreadcrumbList в JSON-LD, и берёт их из того же метода, через тот же фильтр. Значит, после установки кода из разметки тоже исчезнет последний элемент — визуальные крошки и данные для поисковиков останутся согласованными, что и требуется. Документация Google допускает, что последний элемент списка может не соответствовать текущей странице: обязательны только название и позиция каждого элемента, ссылка на текущую страницу не требуется. Проверить результат можно в инструменте проверки расширенных результатов.

Если крошки выводит SEO-плагин

Часто тема показывает не крошки WooCommerce, а крошки Yoast SEO или Rank Math — тогда фильтр выше ни на что не влияет, потому что эти плагины строят цепочку сами. У каждого есть свой фильтр с тем же смыслом:

// Yoast SEO
add_filter( 'wpseo_breadcrumb_links', 'shop_remove_last_crumb_yoast' );
function shop_remove_last_crumb_yoast( $links ) {
    if ( is_product() && count( $links ) > 1 ) {
        array_pop( $links );
    }
    return $links;
}

// Rank Math
add_filter( 'rank_math/frontend/breadcrumb/items', 'shop_remove_last_crumb_rankmath' );
function shop_remove_last_crumb_rankmath( $crumbs ) {
    if ( is_product() && count( $crumbs ) > 1 ) {
        array_pop( $crumbs );
    }
    return $crumbs;
}

Какой именно вариант используется на сайте, проще всего понять по HTML: у крошек WooCommerce обёртка с классом woocommerce-breadcrumb, у Yoast — #breadcrumbs со span внутри, у Rank Math — .rank-math-breadcrumb.

Классические и блочные темы

В блочных темах крошки магазина выводит блок «Хлебные крошки магазина» (Store Breadcrumbs). В актуальных версиях WooCommerce он отрисовывает ту же цепочку из WC_Breadcrumb, так что фильтр woocommerce_get_breadcrumb действует и на него. После установки проверьте страницу товара в обоих случаях — и в шаблоне темы, и в редакторе сайта, если он используется.

Когда всё же править шаблон

Переопределение woocommerce/global/breadcrumb.php в папке темы по-прежнему работает, и оно уместно, когда нужно поменять саму разметку: разделители, обёртки, иконку дома. Для удаления, добавления или переименования элементов шаблон трогать не стоит: копия шаблона в теме перестаёт получать обновления, и WooCommerce будет напоминать об устаревшей версии в разделе «Статус». Фильтр таких проблем не создаёт.

Коротко

Чтобы убрать название товара из хлебных крошек, достаточно фильтра woocommerce_get_breadcrumb с array_pop() и условием is_product(). Разметка BreadcrumbList поменяется вместе с видимыми крошками. Если крошки строит Yoast или Rank Math, используйте их собственные фильтры — логика та же.

Частые вопросы

Q.Не пострадает ли SEO, если убрать название товара из крошек?

Нет. Разметка BreadcrumbList изменится вместе с видимыми крошками и останется согласованной. Google не требует, чтобы последний элемент списка соответствовал текущей странице — обязательны только название и позиция элементов.

Q.Почему фильтр не сработал?

Скорее всего, крошки выводит не WooCommerce, а Yoast SEO или Rank Math. Проверьте класс обёртки в HTML и используйте фильтр соответствующего плагина: wpseo_breadcrumb_links или rank_math/frontend/breadcrumb/items.

Q.Как убрать последний элемент не только на товарах, но и на категориях?

Уберите проверку is_product() из условия — тогда последний элемент будет сниматься на всех страницах магазина. Проверку count( $crumbs ) > 1 оставьте.

Q.Можно ли вместо удаления укоротить название товара?

Да. Вместо array_pop() измените текст последнего элемента массива через wp_trim_words() или mb_strimwidth(), оставив ссылку пустой.

Источники

Предыдущая
Как упорядочить товары по наличию в WooCommerce: сначала в наличии, потом остальные
Следующая
Как программно получить категорию товара WooCommerce по его ID

Читайте также

Фотореалистичный кадр стола приёмки товара: кожаный рюкзак стоит на почтовых весах, вдоль него растянута жёлтая рулетка, рядом штангенциркуль и крафтовая бирка со штрихкодом, слева монитор с админской карточкой товара — длинная форма с вкладками и полями — иллюстрация к статье о получении всех данных товара WooCommerce по его ID.WooCommerce
12 сентября 2026 г.

Как получить все данные товара WooCommerce по его ID: объект WC_Product и его методы

Название, цена, остаток, вес, картинки, атрибуты, произвольные поля — всё это отдаёт объект товара, который возвращает wc_get_product(). Шпаргалка по методам WC_Product по группам, разница между типами товаров, работа с вариациями, датами и ценами, а также способ получить все данные разом.

Читать →
Фотореалистичный кадр рабочего стола: на переднем плане проволочная магазинная корзинка с серым керамическим чайником на упаковочной бумаге, за ней открытый ноутбук с карточкой того же чайника, где под ценой контурная кнопка с иконкой корзины и стрелкой вместо обычной кнопки покупки — иллюстрация к статье о замене кнопки «В корзину» на «Перейти в корзину» для товаров, уже добавленных в корзину WooCommerce.WooCommerce
12 сентября 2026 г.

Кнопка «Перейти в корзину» вместо «В корзину», если товар уже добавлен: WooCommerce без правки шаблонов

Покупатель уже положил товар в корзину, а карточка по-прежнему предлагает «В корзину» — так появляются случайные дубли. Показываем, как заменить кнопку на «Перейти в корзину» для товаров, которые уже в корзине: хуками, без правки шаблонов, в карточке товара и в каталоге, с учётом Ajax-добавления и кеширования страниц.

Читать →
Фотореалистичный кадр сверху на прилавок небольшой лавки: планшет в подставке со страницей корзины, где у средней строки выделено поле количества, а блок итогов полупрозрачный с кольцом загрузки и под таблицей пустое место без кнопок, рядом плетёная корзинка с мылом, свечами и банкой джема, слева крафтовые пакеты и бечёвка — иллюстрация к статье о скрытии кнопки «Обновить корзину» и автообновлении корзины WooCommerce.WooCommerce
12 сентября 2026 г.

Как скрыть кнопку «Обновить корзину» в WooCommerce и обновлять корзину автоматически

Кнопка «Обновить корзину» — лишний шаг для покупателя: изменил количество, забыл нажать, и итог не пересчитался. Показываем, как заставить классическую корзину WooCommerce обновляться сама при изменении количества, спрятать кнопку одним CSS-правилом и почему в блочной корзине делать ничего не нужно.

Читать →