Yoast Хлебные крошки Внедрить несколько уровней

Вопрос или проблема

Я пытаюсь добавить два уровня в свою навигацию по хлебным крошкам. У меня сейчас:

Главная > CPT Пост

Что я должен иметь (или что я хочу иметь):

Главная > Страница 1 > Страница 2 > CPT Пост

Итак, мне нужно добавить 2 ссылки в то, что у меня сейчас.

Используя это в качестве начала…:

add_filter( ‘wpseo_breadcrumb_links’, ‘yoast_seo_breadcrumb_append_link’ );

function yoast_seo_breadcrumb_append_link( $links ) {
global $post;

if ( is_single ( 123456 ) ) {
    $breadcrumb[] = array(
        'url' => site_url( '/blog/' ),
        'text' => 'Блог',
    );

    array_splice( $links, 1, -2, $breadcrumb );
}

return $links;

}

…Я понимаю, как это построить, но просто пока недостаточно хорош, чтобы вставить это туда.

Можешь объяснить это мне? Пример полезен для обучения (для меня и других). Я действительно ценю помощь.

Мое быстрое и грязное решение заключалось в том, чтобы вложить 2 массива и перебрать их. Вам нужно будет жестко закодировать ваши URL на n-м уровне. Этот пример выделяет конкретный тип пользовательского поста.

function yoast_seo_breadcrumb_append_link( $links ) { 
global $post;    
if ((is_singular('team-members'))) {
            $breadcrumbs[] = array(
                array(
                    'url' => site_url('/our-firm/'),
                    'text' => 'Наша компания'
                ),
                array(
                    'url' => site_url('/our-firm/our-professionals/'),
                    'text' => 'Наши специалисты'
                )
            );
            foreach ($breadcrumbs as $breadcrumb) {
                array_splice($links, 1, -2, $breadcrumb);
            }
        }
return $links;
}

Ответ или решение

Чтобы добавить два уровня в хлебные крошки (breadcrumbs) на сайте WordPress с использованием плагина Yoast SEO, вам необходимо будет модифицировать массив, который отвечает за вывод хлебных крошек. В вашем случае, вы хотите видеть следующую структуру: «Главная > Страница 1 > Страница 2 > CPT Пост».

Шаги для достижения цели:

  1. Фильтрация хлебных крошек: В WordPress через функцию add_filter вы можете перехватить массив хлебных крошек и модифицировать его.

  2. Создание необходимых уровней: Вам нужно будет создать массив с необходимыми ссылками и вставить его в правильное место в текущем массиве хлебных крошек.

Пример реализации:

add_filter('wpseo_breadcrumb_links', 'yoast_seo_breadcrumb_append_link');

function yoast_seo_breadcrumb_append_link($links) {
    global $post;

    // Проверяем, является ли текущий пост нужным типом (например, 'team-members')
    if (is_singular('your_custom_post_type')) {

        // Определяем новые хлебные крошки
        $new_breadcrumbs = array(
            array(
                'url' => site_url('/page-1/'),
                'text' => 'Страница 1'
            ),
            array(
                'url' => site_url('/page-2/'),
                'text' => 'Страница 2'
            )
        );

        // Вставляем новые крошки после первой ссылки
        array_splice($links, 1, 0, $new_breadcrumbs);
    }

    return $links;
}

Объяснение кода:

  1. Фильтрация: Мы используем add_filter для изменения хлебных крошек. Функция yoast_seo_breadcrumb_append_link принимает текущее состояние массива хлебных крошек.

  2. Проверка типа поста: Условие is_singular('your_custom_post_type') проверяет, является ли текущий пост определённого типа. Замените 'your_custom_post_type' на идентификатор вашего пользовательского типа поста.

  3. Создание нового массива крошек: В данном случае мы создаём массив $new_breadcrumbs, где каждая крошка имеет url и text.

  4. Вставка новых крошек: Функция array_splice позволяет модифицировать массив хлебных крошек, добавляя новые уровни в нужное место. Здесь мы добавляем новые крошки после первой ссылки, сохраняя порядок.

Заключение:

Использование данного кода позволяет эффективно добавлять дополнительные уровни в хлебные крошки вашего сайта на WordPress. Это не только улучшит навигацию, но и создаст более понятную структуру для пользователей и поисковых систем, что положительно скажется на SEO. Если у вас есть дополнительные вопросы или нуждаетесь в помощи с другими аспектами разработки, пожалуйста, дайте знать!

Оцените материал
Добавить комментарий

Капча загружается...