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.
 * 
 * @param  array $crumbs The crumbs array.
 * @return array         The developer to filter the Yoast SEO breadcrumb links.
 */
function new_wpseo_breadcrumb_links( $crumbs ) {
	if ( is_single() && sizeof( $crumbs ) > 1 ) {
		array_pop( $crumbs );
	}

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

/**
 * Yoast SEO — add a link before the last crumbs.
 * 
 * @param  string $link_output The output string.
 * @param  array  $link        The link array.
 * @return string              The last crumbs new markup.
 */
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 );