Навигационная цепочка с поддержкой schema.org
- 601 просмотр
- 23 января, 2023
- Обновлено: 16 октября, 2023
- admin
- Время чтения: 2 минуты
Использование микроразметки schema.org является признаком хорошего тона, поскольку позволяет структурировать данные, размещенные на сайте. Тем самым обеспечивается представление информации в дружественном для поисковых систем виде.
В полном виде применение микроразметки мы сейчас рассматривать не будем, а ограничимся только “хлебными крошками”. Это важный и полезный элемент сайта, облегчающий пользователю навигацию по его разделам и страницам.
В самом простом виде “хлебные крошки” имеют следующую разметку:
<ul> <li> <a href="#">Главная</a> </li> <li> <a href="#">Раздел</a> </li> ... <li> <a href="#">Страница</a> </li> </ul>
При использовании Bootstrap разметка немного усложняется:
<ul class="breadcrumb"> <li class="breadcrumb-item"> <a href="#">Главная</a> </li> <li class="breadcrumb-item"> <a href="#">Раздел</a> </li> ... <li class="breadcrumb-item"> <a href="#">Страница</a> </li> </ul>
При использовании микроразметки и Bootstrap все становится еще немного сложнее:
<ul class="breadcrumb" itemscope="" itemtype="https://schema.org/BreadcrumbList"> <li class="breadcrumb-item" itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"> <a href="#" itemprop="item"> <span itemprop="name">Главная</span> <meta itemprop="position" content="1"> </a> </li> <li class="breadcrumb-item" itemprop="itemListElement" itemscope= itemtype="https://schema.org/ListItem"> <a href="#" itemprop="item"> <span itemprop="name">Раздел</span> <meta itemprop="position" content="2"> </a> </li> ... <li class="breadcrumb-item" itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"> <span itemprop="name">Страница</span> <meta itemprop="position" content="3"> </li> </ul>
Реализовать такой функционал одной только версткой не получится: появляется элемент meta с атрибутом content, фактически представляющим собой счетчик "крошек". Поэтому для решения задачи задействуем плагин Crumbs, в котором можно и получить доступ к счетчику элементов и вывести его значения в цикле.
Прежде всего, добавим в настройки плагина (файл crumbs.setup.php) опцию включения микроразметки:
schema=12:radio::1:Use schema.org markup
Далее расширим ресурсы крошек, добавив вариант с миркоразметкой:
$R['crumbs_open'] = '<ul class="breadcrumb">'; $R['crumbs_item'] = '<li class="breadcrumb-item"><a href="{$url}" title="{$title}">{$title}</a></li>'; $R['crumbs_item_last'] = '<li class="breadcrumb-item">{$title}</li>'; $R['crumbs_close'] = '</ul>'; $R['schema_crumbs_open'] = '<ul class="breadcrumb" itemscope itemtype="https://schema.org/BreadcrumbList">'; $R['schema_crumbs_item'] = '<li class="breadcrumb-item" itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"><a href="{$url}" title="{$title}" itemprop="item"><span itemprop="name">{$title}</span><meta itemprop="position" content="{$number}" /></a></li>'; $R['schema_crumbs_item_last'] = '<li class="breadcrumb-item" itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem"><span itemprop="name">{$title}</span><meta itemprop="position" content="{$number}" /></li>'; $R['schema_crumbs_close'] = '</ul>';
Остается немного подправить функцию для задействования нашей новой настройки:
... if (Cot::$cfg['plugin']['crumbs']['schema']) { $rc_prefix = "schema_crumbs_"; } else { $rc_prefix = "crumbs_"; } ... $out = cot_rc($rc_prefix . 'open'); ... $rc_name = ($i == $cnt - 1) ? $rc_prefix . 'item_last' : $rc_prefix . 'item'; ... $out .= cot_rc($rc_prefix . 'close'); ...
Теперь плагин Crumbs сможет создавать навигациюнную цепочку или "хлебные крошки" как в обычном варианте, так и с микроразметкой schema.org.
Новый комментарий