2026-01-08 20:53:00 +03:00
|
|
|
|
<?php
|
|
|
|
|
|
if ( ! is_single() ) return;
|
|
|
|
|
|
|
|
|
|
|
|
// Рекурсивная функция с Schema.org позицией
|
|
|
|
|
|
function render_full_category_breadcrumbs( $cat_id, &$position = 1, $separator = ' > ' ) {
|
|
|
|
|
|
$cat = get_category( $cat_id );
|
|
|
|
|
|
if ( ! $cat ) return;
|
|
|
|
|
|
|
|
|
|
|
|
// Рекурсивно выводим родителей
|
|
|
|
|
|
if ( $cat->parent != 0 ) {
|
|
|
|
|
|
render_full_category_breadcrumbs( $cat->parent, $position, $separator );
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
// Выводим категорию с Schema.org структурой
|
|
|
|
|
|
echo '<li property="itemListElement" typeof="ListItem" itemprop="itemListElement">
|
|
|
|
|
|
<a property="item" typeof="WebPage" href="' . esc_url( get_category_link( $cat->term_id ) ) . '">
|
|
|
|
|
|
<span property="name" itemprop="name">' . esc_html( $cat->name ) . '</span>
|
|
|
|
|
|
</a>
|
|
|
|
|
|
<meta property="position" content="' . $position . '" />
|
|
|
|
|
|
</li>';
|
|
|
|
|
|
|
|
|
|
|
|
$position++;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-01-09 18:13:48 +03:00
|
|
|
|
// Функция проверки принадлежности к рубрике Новости
|
|
|
|
|
|
function is_news_category( $cat_id ) {
|
|
|
|
|
|
$news_cat = get_category_by_slug( 'news' );
|
|
|
|
|
|
if ( ! $news_cat ) return false;
|
|
|
|
|
|
|
|
|
|
|
|
// Проверяем, является ли текущая категория "Новости" или её потомком
|
|
|
|
|
|
return ( $cat_id == $news_cat->term_id || cat_is_ancestor_of( $news_cat->term_id, $cat_id ) );
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2026-01-08 20:53:00 +03:00
|
|
|
|
$categories = get_the_category();
|
|
|
|
|
|
if ( empty( $categories ) ) return;
|
|
|
|
|
|
|
|
|
|
|
|
$main_cat = $categories[0];
|
|
|
|
|
|
$breadcrumb_position = 1;
|
2026-01-09 18:13:48 +03:00
|
|
|
|
$show_datetime = is_news_category( $main_cat->term_id );
|
2026-01-08 20:53:00 +03:00
|
|
|
|
?>
|
|
|
|
|
|
|
|
|
|
|
|
<nav class="breadcrumbs" aria-label="Навигация по рубрикам" itemscope itemtype="https://schema.org/BreadcrumbList">
|
|
|
|
|
|
<ol class="breadcrumbs_list" itemprop="itemListElement">
|
|
|
|
|
|
<?php render_full_category_breadcrumbs( $main_cat->term_id, $breadcrumb_position ); ?>
|
2026-01-09 18:13:48 +03:00
|
|
|
|
<?php if ( $show_datetime ) : ?>
|
2026-01-08 20:53:00 +03:00
|
|
|
|
<li property="itemListElement" typeof="ListItem">
|
|
|
|
|
|
<span property="item" typeof="WebPage" itemprop="name"><?php the_time('j F Y, H:i \М\С\К'); ?></span>
|
|
|
|
|
|
<meta property="position" content="<?php echo ++$breadcrumb_position; ?>" />
|
|
|
|
|
|
</li>
|
2026-01-09 18:13:48 +03:00
|
|
|
|
<?php endif; ?>
|
2026-01-08 20:53:00 +03:00
|
|
|
|
</ol>
|
|
|
|
|
|
</nav>
|
|
|
|
|
|
|
|
|
|
|
|
|