
Время прочтения: 2 мин.
225
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 );
Код помог, всё работает, спасибо! До этого был код который просто убирает дубль заголовка но оставался разделитель, а этим кодом убирается и разделитель.