Как отредактировать уровень хлебных крошек?

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

Как отредактировать уровень хлебных крошек, нужно убрать один уровень?

Как отредактировать уровень хлебных крошек?

сайт

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

Как отредактировать уровень хлебных крошек?

Несколько решений.

  1. Пересмотреть архитектуру категорий и товаров. Зачем вам категория с одним и тем же названием товара или зачем у товара такое же название? Сейчас оно дублируется, так как сначала показывает категорию с таким именем, а потом наименование товара
  2. Использовать хлебные крошки, например rank math seo или yoast. Там можно отключить отображение названия текущей страницы
  • Спасибо большое, получилось, настроил через yoast
Нужно решить такую задачу?

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

Заказать помощь
Лучший ответ
1
Максим Павлов Ответ

Хлебные крошки редактируются не в одном универсальном месте: всё зависит от того, кто их выводит — тема, WooCommerce, Yoast SEO, Rank Math, Breadcrumb NavXT или другой плагин. Поэтому сначала нужно найти источник вывода. В исходном коде страницы посмотрите классы рядом с крошками: часто там видно yoast, rank-math, woocommerce-breadcrumb.

Если это WooCommerce breadcrumbs, один уровень можно убрать фильтром woocommerce_get_breadcrumb:

add_filter('woocommerce_get_breadcrumb', function ($crumbs) {
    foreach ($crumbs as $index => $crumb) {
        if (! empty($crumb[0]) && $crumb[0] === 'Ненужная категория') {
            unset($crumbs[$index]);
        }
    }
 
    return array_values($crumbs);
});

add_filter('woocommerce_get_breadcrumb', function ($crumbs) { foreach ($crumbs as $index => $crumb) { if (! empty($crumb[0]) && $crumb[0] === 'Ненужная категория') { unset($crumbs[$index]); } } return array_values($crumbs); });

Если нужно убрать предпоследний уровень, например категорию перед товаром:

add_filter('woocommerce_get_breadcrumb', function ($crumbs) {
    if (is_product() && count($crumbs) > 2) {
        array_splice($crumbs, -2, 1);
    }
 
    return $crumbs;
});

add_filter('woocommerce_get_breadcrumb', function ($crumbs) { if (is_product() && count($crumbs) > 2) { array_splice($crumbs, -2, 1); } return $crumbs; });

Если крошки выводит Yoast SEO, используйте фильтр wpseo_breadcrumb_links:

add_filter('wpseo_breadcrumb_links', function ($links) {
    if (is_singular('product') && count($links) > 2) {
        array_splice($links, -2, 1);
    }
 
    return $links;
});

add_filter('wpseo_breadcrumb_links', function ($links) { if (is_singular('product') && count($links) > 2) { array_splice($links, -2, 1); } return $links; });

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

После правки проверьте не только визуальный блок, но и микроразметку breadcrumbs в валидаторе. Если убрать уровень только CSS-ом, в schema-разметке он может остаться.

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

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

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

комментарий

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

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