Стандартная разработка интернет-магазина на WooCommerce подразумевает, что разработчик создает товарные категории и заполняет их товаром. Как известно, категория товаров крайне невосприимчива к доработке визуального оформления, то есть по умолчанию она может включать:
- описание рубрики сверху;
- список товаров, дочерних категорий;
- “сайдбар” с фильтрами, различной информацией.
В большинстве случаев этого функционала более чем достаточно. Можно дополнить категорию дополнительным описанием снизу, отобразить различные элементы с помощью хуков и плагинов. Однако, если требуется создать уникальную страницу, отвечающую за категорию товара, то без изменения структуры “хлебных крошек” в WooCommerce не обойтись. Конечно же, если вы не используете “хлебные крошки” на своем сайте, то можете обойтись 301 редиректом.
Допустим, вы уже установили и активировали плагин транслитерации, настроили постоянные ссылки (ЧПУ), имеете товарную категорию “Смартфоны”. Один из товаров, добавленных в эту рубрику, будет ссылаться на свой каталог.
В этом случае структура “хлебных крошек” приобретет вид:
- Главная (site.ru/)
- Смартфоны (site.ru/product-category/smartfony/)
- Samsung Galaxy S6 (site.ru/product/smartfony/samsung-galaxy-s6/)
- Смартфоны (site.ru/product-category/smartfony/)
Наша задача заключается в том, чтобы на этапе формирования названия и ссылки категории товара в “хлебных крошках” данные менялись на те, которые мы собираемся использовать.
Создаем самую обычную страницу, предположим “Мобильные телефоны”, оформляем, желательно с помощью визуального редактора, например “WPBakery Page Builder for WordPress”, выводите товар. Теперь самое главное – открываем файл, находящийся в “/wp-content/plugins/woocommerce/templates/global/breadcrumb.php”, находим код:
if ( ! empty( $crumb[1] ) && sizeof( $breadcrumb ) !== $key + 1 ) { echo '<a href="' . esc_url( $crumb[1] ) . '">' . esc_html( $crumb[0] ) . '</a>'; } else { echo esc_html( $crumb[0] ); }
Заменяем на:
if ( ! empty( $crumb[1] ) && sizeof( $breadcrumb ) !== $key + 1 ) { if ($crumb[0] == "Смартфоны") { $crumb[0] == "Мобильные телефоны" $crumb[1] = "/mobilnye-telefony/"; } echo '<a href="' . esc_url( $crumb[1] ) . '">' . esc_html( $crumb[0] ) . '</a>'; } else { echo esc_html( $crumb[0] ); }
Названия страницы и категории товара могут быть одинаковые, конфликтов не будет. В конечном итоге, все названия и ссылки, соответствующие товарной категории, в “хлебных крошках” на карточках товаров будут соответствовать странице.
Не забудьте в файле “.htaccess” добавить 301 редирект:
<IfModule mod_rewrite.c> Options +FollowSymLinks RewriteEngine on RewriteRule ^product-category/smartfony/$ http://site.ru/mobilnye-telefony/ [R=301,L] RewriteRule ^product-category/smartfony/page/(.*)$ http://site.ru/mobilnye-telefony/ [R=301,L] </IfModule>
2,208 total views, 1 views today
2 комментария. Оставить новый
Добрый день! В моем случает хлебные крошки выглядят так: Главная – Главная_вукоммерс – категория – товар. Подскажите, что нужно сделать, чтобы поменять ссылку у “Главная_вукомерс” на другую статическую страницу?
Здравствуйте. А в примере, приведенном в статье, что меняется?