Yoast SEO Breadcrumbs
Время прочтения: 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 );