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