Сниппеты для хлебных крошек Yoast SEO – редактирование элементов, заголовка
Уже много лет я использую модуль Yoast SEO для всего, что связано с оптимизацией вебстраниц в Вордпресс. Это самое крутое и функциональное решение в данной сфере с кучей дополнительных возможностей, позволяющих, например, вручную выбирать основную категорию записи и даже создавать хлебные крошки. О последнем пункте поговорим подробнее, точнее рассмотрим парочку сниппетов, помогающих модифицировать их вывод на сайте. Иногда бывают ситуации, когда надо добавить еще один блок ссылок или убрать лишний.
Для вывода хлебных крошек используется следующий код, который помещаете в нужное место соответствующего файла шаблона (single.php, page.php, header.php или другой в зависимости структуры от вашей темы):
if ( function_exists('yoast_breadcrumb') ) { yoast_breadcrumb('<p id="breadcrumbs">','</p>'); } |
Разумеется данную функцию нужно будет также включить в настройках модуля в админке (тамже задаются всяческие ее параметры).
Исходя из этих значений и будет автоматически сформирован путь по сайту (breadcrumb) для каждой веб-страницы. Однако при редактировании постов в блоке настроек Yoast SEO имеется пункт, позволяющий задать уникальный заголовок.
Это удобно для разовых правок, но, когда требуется сделать глобальные изменения для целого ряда записей, сниппеты могут быть эффективнее.
Полезные сниппеты хлебных крошек Yoast
Для начала пару моментов:
- Редактировать выводимую плагином информацию мы будем через фильтр wpseo_breadcrumb_links.
- Вы можете использовать условные выражения дабы внедрять их только в определенных страница/разделах.
Как удалить последний элемент хлебных крошек
Судя по всему, тут есть 2 варианта решения. У меня отлично сработал этот:
function remove_breadcrumb_title( $link_output) { if(strpos( $link_output, 'breadcrumb_last' ) !== false ) { $link_output = ''; } return $link_output; } add_filter('wpseo_breadcrumb_single_link', 'remove_breadcrumb_title' ); |
Но можно попробовать и так:
add_filter( 'wpseo_breadcrumb_links', 'db_wpseo_breadcrumb_links' ); function db_wpseo_breadcrumb_links( $links ) { if( sizeof($links) > 1 ){ array_pop($links); } return $links; } |
Мне кажется, во второй конструкции автор привязывается к ссылкам, а поскольку последний элемент бывает и обычным текстом, то такой подход у многих не срабатывает.
Удаление ссылки из элемента
Источник решения здесь. Добавляйте в файл функций следующую конструкцию.
add_filter( 'wpseo_breadcrumb_single_link' ,'wpseo_remove_breadcrumb_link', 10 ,2); function wpseo_remove_breadcrumb_link( $link_output , $link ){ $text_to_remove = 'Products'; if( $link['text'] == $text_to_remove ) { $link_output = ''; } return $link_output; } |
Здесь в качестве значения переменной text_to_remove указываете для какого объекта надо убрать линк. Если нужно “пройтись” по нескольким значениям, используйте конструкцию:
add_filter( 'wpseo_breadcrumb_single_link' ,'wpseo_remove_breadcrumb_link', 10 ,2); function wpseo_remove_breadcrumb_link( $link_output , $link ) { $text_to_remove = [ 'Products', 'Товари' ]; if ( in_array( $link['text'], $text_to_remove, true ) ) { return; } return $link_output; } |
Добавление новой ссылки в путь по сайту
На этой вебстранице есть сразу парочку вариантов кода. Первый из них пригодится для WooCommerce магазина, если вы захотите добавить в конструкцию ссылку на каталог товаров (Shop).
add_filter( 'wpseo_breadcrumb_links', 'wpseo_breadcrumb_add_woo_shop_link' ); function wpseo_breadcrumb_add_woo_shop_link( $links ) { global $post; if ( is_woocommerce() ) { $breadcrumb[] = array( 'url' => get_permalink( woocommerce_get_page_id( 'shop' ) ), 'text' => 'Shop', ); array_splice( $links, 1, -2, $breadcrumb ); } return $links; } |
Условие is_woocommerce позволяет хаку срабатывать только для данного плагина.
Второй вариант выполняет вставку ссылки на главную страницу блога (/blog/), но, разумеется, также допускается использование любых других переменных.
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' => 'Blog', ); array_splice( $links, 1, -2, $breadcrumb ); } return $links; } |
Важно!
- Здесь в is_single подставлен ID конкретной записи, но вы можете его не указывать (тогда код будет срабатывать для всех постов).
- Если захотите применить его для страниц, то юзайте is_page, для кастомных сущностей есть is_singular, в которую подставляется нужный тип постов post_type_slug.
- Допускается указание списка через массив is_single( array( 123, 456, 789 ) ).
Считываем тайтл (title) от Yoast SEO
Плагин позволяет задавать значение МЕТА-поля Title — это делается внутри админки в одноименном блоке настроек при создании/редактировании поста/страницы. Если вдруг нужно считать это значение, то следующие приемы вам помогут.
В шаблоне записи/поста:
echo get_post_meta(get_the_ID(), '_yoast_wpseo_title', true); |
В архиве:
$titles = get_option( 'wpseo_titles' ); $title = $titles['title-ptarchive-POST_TYPE']; echo apply_filters( 'the_title', $title ); |
Для таксономий:
$cat_id = get_query_var( 'cat' ); $meta = get_option( 'wpseo_taxonomy_meta' ); $title = $meta['category'][$cat_id]['wpseo_title']; echo apply_filters( 'the_title', $title ); |
Для тегов:
$tag_id = get_query_var( 'tag' ); $meta = get_option( 'wpseo_taxonomy_meta' ); $title = $meta['post_tag'][$tag_id]['wpseo_title']; echo apply_filters( 'the_title', $title ); |
Я так понимаю, данные считываются внутри цикла Loop, как и для обычных заголовков. Вы можете совместить этот прием с самым первым сниппетом из текущей заметки дабы выводить в хлебных крошках не базовый заголовок поста, а именно Title. Если знаете еще какие-то хаки — делитесь ими ниже.
комментария 4 к статье “Сниппеты для хлебных крошек Yoast SEO – редактирование элементов, заголовка”
Блог Wordpress Inside поможет вам научиться работать в вордпресс, закрепить и расширить имеющиеся знания. Плагины и шаблоны, разные хаки и функции wp, оптимизация и безопасность системы – все это и намного больше вы сможете найти на страницах нашего проекта!
Если хотите быстро и оперативно получать последние новости и статьи, то рекомендуем подписаться на обновления блога:
- Як сховати відсутні товари в Woocommerce шорткодах та схожих товарах
- Сервіс AdMaven + плагін для монетизації трафіка на WordPress сайтах
- Плагіни для створення стрічки новин з біжучим рядком в WordPress
- Як змінити розміщення кнопки оформлення замовлення в WooCommerce
- Плагін WHWS Display In Stock Products First – відображення товарів в наявності першими
- Підписка MonsterONE: чи варто використовувати цей сервіс у 2023 році? (+5 продуктів, які треба скачати в першу чергу)
- Онлайн генератор ссылок на мессенджеры для WordPress и не только
- WooCommerce (46)
- Безопасность (12)
- Видео (6)
- Виджеты (28)
- Возможности (141)
- Вопрос-ответ (6)
- Начинающим (52)
- Новости (46)
- Оптимизация (23)
- Плагины (246)
- Сервисы (87)
- Хаки и секреты (87)
- Шаблоны (45)
- Плагин WP-PostRatings рейтинга постов в WordPress
(5,79 из 7, голосов - 934)
- 5 wordpress плагинов для кнопок социальных закладок
(5,24 из 7, голосов - 42)
- Кэширование в wordpress — выбираем лучший плагин для кэширования
(5,63 из 7, голосов - 35)
- 50+ лучших плагинов для WordPress сайта
(5,71 из 7, голосов - 34)
- Лучшие плагины картинок в WordPress — галереи, слайдеры, для миниатюр и т.п.
(6,07 из 7, голосов - 30)
- Лучшие плагины статистики в WordPress — просмотр посещаемости сайта и не только
(4,65 из 7, голосов - 37)
- Обновление плагинов и тем в WordPress: автоматическое, через FTP, скрытие уведомлений
(5,19 из 7, голосов - 31)

- Дизайн Мания - о веб-дизайне и не только.
- Tod's Blog - все про заработок онлайн.
- Вебдванольные заметки - обзоры веб-сервисов.
- Найбільш очікувані новинки MMORPG ігор в 2025 році
- Советы по выбору холодильника LG с технологией No Frost
- Зачем нужны Wi-Fi ретрансляторы и как выбрать подходящую модель
- Введение в онлайн-казино Slotor777: многообразие игр и привлекательные бонусы
- Необходимость использования облачного хранилища в наше время, что важно и как выгодно?
- Спрощення процесу звітності за допомогою програми BAS Бухгалтерія
- Технологія підключення інтернету GPON та її переваги
- За що гравці найбільше цінують Lineage 2
Отличное руководство, спасибо! Но у меня вот такая дилема: на странице shop хк Главная-Товары. как переименовать Товары в Услуги или Предложения??? Буду благодарен за ответ!
Дмитрий, думаю, что решение в переводе. Если не хотите тратить время на скачивание/изучение программы Poedit, то проще сделать перевод через gettext функцию. Но тут есть риск, что заменится аналогичная фраза и в других местах.
Привет!
Обновился с 11 сразу на последнюю на данный момент 14 версию и обнаружил, что теперь хлебные крошки не показывают номер страницы. Пример для лучшего понимания: заходим в раздел на сайте «Новости», переходим на вторую страницу с новостями . Раньше было «Сайт» > «Новости» > «Страница 2». А сейчас не показывает в хлебных крошках Yoast «Страница *». Как вернуть показ?
Валерий, тут 2 варианта — либо откатиться на прошлую версию плагина либо искать хаки по типу такого.