Готовые решения для вашего бизнеса

Модули Шаблоны
Opencart бесплатно

Убрать циклические ссылки в хлебных крошках и добавить микроразметку

Будем работать на дефолтном шаблоне опенкарт, но в большинстве случаев данный способ можно использовать в любом шаблоне. Можно ли это сделать через модификатор? - Да, можно, но я здесь покажу простой способ для новичков.

В стандартном шаблоне opencart хлебные крошки реализованы так:

<ul class="breadcrumb"> <?php foreach ($breadcrumbs as $breadcrumb) { ?> <li><a href="<?php echo $breadcrumb['href']; ?>"><?php echo $breadcrumb['text']; ?></a></li> <?php } ?> </ul>

Разработчики opencart не парятся на счёт seo в своей платформе и по-этому приходится нам, разработчикам, дорабатывать такие своеобразные "косяки производства".

Вышеуказанный блок кода вам надо заменить в каждом файле шаблона на следующий:

<ul class="breadcrumb"> <?php foreach ($breadcrumbs as $count => $breadcrumb) { ?> <?php if($count == 0) { ?> <li><a href="<?php echo $breadcrumb['href']; ?>"><?php echo $breadcrumb['text']; ?></a></li> <?php } elseif($count+1<count($breadcrumbs)) { ?> <li><a href="<?php echo $breadcrumb['href']; ?>"><?php echo $breadcrumb['text']; ?></a></li> <?php } else { ?> <li><?php echo $breadcrumb['text']; ?></li> <?php } ?> <?php } ?> </ul>

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

Теперь выше представленный блок кода замените на блок кода ниже, если вам нужна микроразметка хлебных крошек в интернет-магазине:

<ul class="breadcrumb" itemscope itemtype="https://schema.org/BreadcrumbList"> <?php foreach ($breadcrumbs as $count => $breadcrumb) { ?> <?php if($count == 0) { ?> <li> <a itemid="<?php echo $breadcrumb['href']; ?>" href="<?php echo $breadcrumb['href']; ?>"> <?php echo $breadcrumb['text']; ?> </a> <meta itemprop="url" content="<?php echo $breadcrumb['href']; ?>"> </li> <?php } elseif($count+1<count($breadcrumbs)) { ?> <li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"> <a itemscope itemtype="https://schema.org/Thing" itemprop="item" href="<?php echo $breadcrumb['href']; ?>" title="<?php echo $breadcrumb['text']; ?>" itemid="<?php echo $breadcrumb['href']; ?>"> <meta itemprop="url" content="<?php echo $breadcrumb['href']; ?>"> <meta itemprop="name" content="<?php echo $breadcrumb['text']; ?>"> <?php echo $breadcrumb['text']; ?> </a> <meta itemprop="item" content="<?php echo $breadcrumb['href']; ?>"> <meta itemprop="position" content="<?php echo $count; ?>"> </li> <?php } else { ?> <li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"> <span itemscope itemtype="https://schema.org/Thing" itemprop="item" itemid="<?php echo $breadcrumb['href']; ?>"> <meta itemprop="name" content="<?php echo $breadcrumb['text']; ?>"> <?php echo $breadcrumb['text']; ?> </span> <meta itemprop="item" content="<?php echo $breadcrumb['href']; ?>"> <meta itemprop="position" content="<?php echo $count; ?>"> </li> <?php } ?> <?php } ?> </ul>

Это мой способ внедрения микроразметки в хлебные крошки на Opencart, надеюсь кто-то знает как сделать проще и он поделится в комментариях, но пока как есть.

Все свои доработки по возможности лучше вносить через модификатор, чтобы иметь возможность обновлять шаблон без последствий. И не забывайте писать комментарии к своим доработкам, т.к. через полгода или год можете не понимать что и для чего тут делалось и на что влияет.