Как внедрить разметку Schema для хлебных крошек от SEO Yoast?

Как внедрить разметку Schema для хлебных крошек от SEO Yoast?

Как внедрить разметку Schema для хлебных крошек от SEO Yoast?

Задумываетесь о внедрении Schema на свой сайт? Но не знаете, как добавить Schema-разметку для хлебных крошек от SEO Yoast? Тогда эта статья для вас!

Если у вас останутся какие-либо вопросы, обязательно пишите в комментарии, быстро поможем разобраться с любыми проблемами.

Шаг 1 — Создаем функцию в functions.php

function modify_yoast_items( $link_html, $link_data ) {
		// Шаблон контейнера li
		$li = '<li itemprop="itemListElement" itemscope="itemscope" itemtype="https://schema.org/ListItem" %s>%s</li>';

		// Содержимое li в зависимости от позиции элемента
		if ( strpos( $link_html, 'breadcrumb_last' ) === false ) {
			$li_inner = sprintf( '
                <a itemprop="item" href="%s" class="pathway">
                    <span itemprop="name">%s</span>
                </a>
            ', $link_data['url'], $link_data['text'] );
			$li_inner .= '<span class="divider">&nbsp;/&nbsp;</span>';
			$li_class = '';
		} else {
			$li_inner = sprintf( '<span itemprop="name">%s</span>', $link_data['text'] );
			$li_class = 'class="active"';
		}

		$li_inner .= sprintf( '<meta itemprop="position" content="%d"/>', ++ $this->el_position );

		// Вкладываем сформированное содержание в li и возвращаем полученный элемент хлебных крошек.
		return sprintf( $li, $li_class, $li_inner );
	}

	/**
	 * Возвращает псевдо wrapper, который в будущем будет вырезан из вёрстки.
	 * Если этого не сделать, то будущие li будут обёртнуты в единый span Yoast'ом.
	 *
	 * @return string
	 */
	function modify_yoast_wrapper() {
		return 'wrapper'; // Будущий "уникальный" тег для вырезки из html
	}

	/**
	 * Изменяет дефолтный html код крошек Yoast.
	 *
	 * @param string $html
	 *
	 * @return string
	 */
	function modify_yoast_output( $html ) {
		// Убираем псевдо wrapper
		$html = str_replace( [ '<wrapper>', '</wrapper>' ], '', $html );

		// Формируем контейнер для li элементов
		$ul = '<ul itemscope="itemscope" itemtype="https://schema.org/BreadcrumbList" class="breadcrumb">%s</ul>';

		// Вставляем в контейнер li элменты
		$html = sprintf( $ul, $html );

		return $html;
	}
}

new Pretty_Breadcrumb();

Шаг 2 — Вывод хлебных крошек на страницах

Чтобы вывести крошки с разметкой Schema, скопируйте и вставьте эту функцию в нужное вам место:

<?php do_action('pretty_breadcrumb') ?>

После всех проделанных действий вы получите следующий результат. Не забудьте вывести новую функцию во всех шаблонах страниц, где должны выводиться крошки: шаблоны страниц, одиночных записей, архивов и странице 404.

Если у вас остались какие-либо вопросы по этой теме, задавайте их в комментариях. С удовольствием поможем с решением любой проблемы.

Поддержать нашу команду:
Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Привет! Интересно читать нас? Уделите пару минут своего времени, узнайте больше о нашей команде!

Получить подарок!