Вопрос или проблема
Я разрабатываю страницу продукта для электронной коммерции для одного товара и заинтересован в добавлении хлебных крошек. Поскольку у меня только один продукт, как я могу удалить или скрыть “Категорию” (в настоящее время обозначенную как “Топические препараты”) из пути хлебных крошек:
Главная > Топические препараты > Сила природы – Бальзам для подвижности
Вот ссылка на страницу, где это видно.
https://zomatonics.com/product/mobility-balm/
Кроме того, эта страница не отображается в моем разделе ‘Страницы’ на панели управления, но ее можно редактировать в разделе ‘Шаблоны’, так как я создал ее как шаблон для одного продукта через Elementor. Почему эта страница не появляется в разделе ‘Страницы’?
Я довольно новичок в создании веб-сайтов (это мой первый), я ценю ваше терпение. Спасибо!
Попробуйте:
add_filter( 'woocommerce_get_breadcrumb', 'cwpai_modify_woocommerce_breadcrumbs', 10, 2 );
function cwpai_modify_woocommerce_breadcrumbs( $crumbs, $breadcrumb_class ) {
$new_crumbs = array();
foreach ( $crumbs as $key => $crumb ) {
// Сохраняем ссылку на главную, родительские категории и название продукта
if ( $key == 0 || $key == count($crumbs) - 2 || $key == count($crumbs) - 1 ) {
$new_crumbs[] = $crumb;
}
}
return $new_crumbs;
}
Ответ или решение
Чтобы скрыть или удалить элемент "Категория" из хлебных крошек (breadcrumbs) на вашем сайте WordPress, вы можете воспользоваться фильтром WooCommerce, как показано в предложенном вами коде. Действительно, при работе с WooCommerce хлебные крошки могут содержать категории товаров, что иногда нежелательно, особенно на страницах единичных продуктов.
Вот детальное объяснение решения:
-
Использование фильтра WooCommerce:
Вам нужно добавить следующий код в файлfunctions.php
вашей темы (или в файл плагина, если вы предпочитаете сохранять изменения отдельно от темы).add_filter( 'woocommerce_get_breadcrumb', 'cwpai_modify_woocommerce_breadcrumbs', 10, 2 ); function cwpai_modify_woocommerce_breadcrumbs( $crumbs, $breadcrumb_class ) { $new_crumbs = array(); foreach ( $crumbs as $key => $crumb ) { // Сохраняем ссылку на "Домашнюю" страницу, родительские категории и название продукта if ( $key == 0 || $key == count($crumbs) - 2 || $key == count($crumbs) - 1 ) { $new_crumbs[] = $crumb; } } return $new_crumbs; }
Разъяснение кода:
- Этот код использует фильтр
woocommerce_get_breadcrumb
, чтобы изменить массивcrumbs
, который содержит все хлебные крошки. - Он перебирает каждую крошку и добавляет в новый массив только те элементы, которые необходимы: домашнюю страницу, название родительской категории (если есть) и название текущего продукта.
- В результате крошки выведутся в виде:
Главная > Force of Nature - Mobility Balm
, без категории "Topicals".
- Этот код использует фильтр
-
Причина, по которой страница не отображается в разделе "Страницы":
Поскольку ваша страница была создана как шаблон единичного продукта с использованием Elementor, она не отображается в разделе "Страницы" вашего дашборда. Этот раздел предназначен для статических страниц. Страницы продуктов управляются через несколько других секций в админке WordPress:- Товары: Все ваши товары будут отображаться в разделе "Товары" (Products).
- Элементы шаблона: Ваш продукт использует конкретный шаблон, созданный в Elementor, который не требует отдельного представления в разделе "Страницы". Он остается частью функционала WooCommerce.
-
Оптимизация для SEO:
Удаление категорий из хлебных крошек может повлиять на SEO, так как хлебные крошки могут помочь определить структуру сайта для поисковых систем. Однако, если вы считаете, что категория не добавляет ценности для пользователя или создает путаницу, данное изменение может быть оправданным.
Убедитесь, что ваши хлебные крошки остаются понятными и логичными, чтобы улучшить пользовательский опыт.
С помощью этих шагов вы сможете успешно скрыть категорию из хлебных крошек вашего продукта в WooCommerce. Если у вас остались вопросы, пожалуйста, не стесняйтесь обращаться за помощью. Удачи в разработке вашего интернет-магазина!