Yoast SEO Breadcrumbs

WordPress Yoast SEO — повторяющиеся заголовки

В плагине Yoast SEO в хлебных крошках Yoast Breadcrumbs для каждой записи отображается её текущее название. В совокупности с заголовком H1 получается дубликат текста, соответственно переспам. В сети есть примеры с возвратом пустого значения в фильтр wpseo_breadcrumb_single_link, что приводит к нарушению валидности HTML кода ссылок. Мой вариант лишён такого недостатка.

Поместите код в файл functions.php вашей темы. Функции удалят эти дубликаты для записей (постов) и не затронут рубрики. На этом сайте используется именно такой код.

Сначала удалим саму «хлебную крошку» функцией через фильтр wpseo_breadcrumb_links, а затем сформируем ссылки на страницы рубрик при помощи фильтра wpseo_breadcrumb_single_link:

/**
 * Yoast SEO — remove the last crumbs.
 */
function new_wpseo_breadcrumb_links( $this_crumbs ) {
	if ( is_single() && sizeof( $this_crumbs ) > 1 ) {
		array_pop( $this_crumbs );
	}

	return $this_crumbs;
}
add_filter( 'wpseo_breadcrumb_links', 'new_wpseo_breadcrumb_links' );

/**
 * Yoast SEO — add a link before the last crumbs.
 */
function new_wpseo_breadcrumb_single_link( $link_output, $link ) {
	if ( is_single() ) {
		$link_output = '<a href="' . $link['url'] . '" >';
		$link_output.= $link['text'];
		$link_output.= '</a>';
	}

	return $link_output;
}
add_filter( 'wpseo_breadcrumb_single_link', 'new_wpseo_breadcrumb_single_link', 10, 2 );