Навигационная цепочка с поддержкой schema.org
Популярные запросы: тема Omnis, плагин Pagelist, Cotonti 0.9.25, ЧПУ, Font Face
- 715 просмотров
- 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.
Новый комментарий
Ошибка
Выполнено