Приветствую, коллеги!
Вот недавно тоже столкнулся с разметкой хлебных крошек, а именно с проблемой ошибки на активной крошке. Использовал рекомендацию
ProtectYourSite и указанный
источник. В общем делаем так: для того, чтобы последняя активная крошка была не ссылкой и при этом проходила валидацию необходимо обернуть последний span еще одним с указанием itemid, т.е вот так:
<span itemid="здесь абсолютная ссылка на материал" itemtype="http://schema.org/Thing" itemscope itemprop="item" >
<span itemprop="name">Название материала</span>
</span>
После этого разметка крошек проходит
валидациюПолная разметка файла breadcrumbs выглядит так:
<?php
defined ('_JEXEC') or die();
?>
<ul itemscope itemtype="https://schema.org/BreadcrumbList" class="mod-breadcrumb">
<?php if ($params->get('showHere', 1)) : ?>
<li class="bc-youarehere">
<?php echo JText::_('MOD_BREADCRUMBS_HERE'); ?> 
</li>
<?php else : ?>
<li class="bc-icon__home">
<i class="divider fas fa-home" aria-hidden="true"></i>
</li>
<?php endif; ?>
<?php
// Get rid of duplicated entries on trail including home page when using multilanguage
for ($i = 0; $i < $count; $i++)
{
if ($i === 1 && !empty($list[$i]->link) && !empty($list[$i - 1]->link) && $list[$i]->link === $list[$i - 1]->link)
{
unset($list[$i]);
}
}
// Find last and penultimate items in breadcrumbs list
end($list);
$last_item_key = key($list);
prev($list);
$penult_item_key = key($list);
// Make a link if not the last item in the breadcrumbs
$show_last = $params->get('showLast', 1);
// Generate the trail
foreach ($list as $key => $item) :
if ($key !== $last_item_key) :
if (!empty($item->link)) :
$breadcrumbItem = '<a itemprop="item" href="' . $item->link . '" class="pathway"><span itemprop="name">' . $item->name . '</span></a>';
else :
$breadcrumbItem = '<span itemprop="name">' . $item->name . '</span>';
endif;
// Render all but last item - along with separator ?>
<li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem" class="breadcrumb-item"><?php echo $breadcrumbItem; ?>
<meta itemprop="position" content="<?php echo $key + 1; ?>">
</li>
<?php elseif ($show_last) :
$breadcrumbItem = '<span itemprop="name">' . $item->name . '</span>';
// Render last item if reqd. ?>
<li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem" class="breadcrumb-item active">
<span itemid="<?php echo $item->link; ?>" itemtype="http://schema.org/Thing" itemscope itemprop="item" >
<?php echo $breadcrumbItem; ?>
</span>
<meta itemprop="position" content="<?php echo $key + 1; ?>">
</li>
<?php endif;
endforeach; ?>
</ul>
Может пригодится кому.