Хлебные крошки WordPress — как вывести их на сайте
« Хлебные крошки » WordPress — это многоуровневая система навигации, которая сообщает пользователям, где на сайте они находятся в данный момент по отношению к главной странице. В этой статье мы покажем, как вывести хлебные крошки WordPress :
Что такое «хлебные крошки» WordPress и для чего они нужны?
« Хлебные крошки » — это термин, используемый для обозначения иерархического меню навигации, представленного в виде цепочки ссылок. Оно часто используется в качестве дополнительного меню навигации.
« Хлебные крошки » отличаются от системы меню навигации WordPress , используемой по умолчанию.
Цель « хлебных крошек » — помочь пользователям перемещаться по сайту. Они помогают понять, где сейчас находится пользователь. Это также помогает поисковым системам определить иерархию ссылок на веб-страницы.
Поисковые системы, такие как Google , начали выводить « хлебные крошки » сайта в результатах поиска. Это увеличивает видимость сайта в результатах поиска и улучшает показатель переходов:
Как добавить хлебные крошки WordPress с помощью Breadcrumb NavXT Plugin
Это гибкий и простой в использовании «хлебные крошки» WordPress плагин. Он имеет больше разнообразных функций, чем вы можете себе представить. Первое, что нужно сделать, это установить и активировать плагин Breadcrumb NavXT. После его активации необходимо перейти на страницу настроек плагина: Настройки — Breadcrumb NavXT :
Для большинства сайтов подойдут настройки по умолчанию. Но при необходимости вы можете внести изменения в настройки параметров.
Страница настроек разделена на несколько разделов. На вкладке « Общие » вы можете определить, каким образом плагин будет вести себя на сайте.
Здесь можно изменить шаблон ссылок. Эти шаблоны используют параметры Schema.org в теге ссылки.
В разделе « Типы записей » вы можете задать « хлебные крошки » для записей, страниц, а также любых пользовательских типов записей. Вы можете выбрать вариант отображения иерархии записей. По умолчанию плагин будет использовать иерархию « Название сайта > Рубрика> Заголовок записи ».
Вы можете заменить элементы навигации тегами, датами или родительскими элементами записей. Вкладки « Таксономии » и « Авторы » имеют сходные шаблоны для ссылок меню. Не забудьте нажать на кнопку « Сохранить изменения ».
Отображение Breadcrumb NavXT на вашем сайте
Для использования этого WordPress плагина « хлебные крошки » вы должны отредактировать файлы темы. Нужно добавить следующий код в файл header.php темы в том месте, где будут отображаться « хлебные крошки »:
Перейдите на сайт и откройте какую-нибудь запись или страницу. Вы увидите, что у вас уже отображаются « хлебные крошки ».
Как добавить хлебные крошки WordPress с помощью Yoast SEO Plugin
Установите и активируйте Yoast SEO Plugin. После активации плагина нужно перейти на страницу SEO > Дополнительно и установите флажок для опции « Включить хлебные крошки »:
После этого станут доступны несколько параметров, с помощью которых вы можете изменить вариант отображения « хлебных крошек ». Настройки по умолчанию должны подойти для большинства сайтов, но при необходимости их можно легко изменить.
После того, как вы закончите, нажмите на кнопку « Сохранить изменения ».
Вывод хлебных крошек с помощью плагина Yoast SEO
Некоторые темы уже поддерживают « хлебные крошки » Yoast . Перейдите на сайт и откройте какую-либо страницу или запись, чтобы проверить, отображаются ли в них « хлебные крошки » WordPress . Если нет, то нужно добавить небольшой фрагмент кода в активную тему.
Вставьте этот код в header.php своей темы в конце файла:
Вот и все, теперь вы можете перейти на свой сайт, там уже будут отображаться « хлебные крошки ».
Надеемся, что эта статья помогла вам.
Как добавить хлебные крошки в WordPress
Хотели бы вы вывести хлебные крошки на своем WordPress? Иерархическая навигация — это дополнительная система навигации, которая сообщает пользователю о том, где именно на данный момент он находится на сайте относительно главной страницы. В сегодняшней статье мы покажем вам как вывести ссылки иерархической навигации (хлебные крошки) в WordPress.
Что такое хлебные крошки и зачем они вам нужны?
Хлебные крошки — это термин для описания иерархической системы навигации меню, представленная в виде цепочки ссылок. Ее часто используют как вспомогательную навигацию, которая позволяет пользователям перемещаться вверх и вниз по иерархии ссылок.
Хлебные крошки отличаются от стандартной системы навигации меню в WordPress.
Основной задачей хлебных крошек является помощь пользователям в навигации по сайту. Они помогают пользователям понять в каком месте (разделе) сайта они находятся. Они также помогают поисковым системам понять иерархию ссылок на веб-странице.
Поисковые системы вроде Google уже начали отображать хлебные крошки под названием сайта в результатах поиска. Это позволит вашему сайту стать более заметным в поисковой выдаче и повысит ваш процент кликабельности. Подробнее об этом можно прочитать в официальной справке Google, потому как всё не так просто, как может показаться на первый взгляд. Не всегда Google может принять решение о том, что нужно отобразить крошки в выдаче именно для вашего сайта.
Давайте теперь посмотрим как же добавить хлебные крошки в WordPress.
Добавляем хлебные крошки с помощью плагина Breadcrumb NavXT
Это, по сути, самый простой способ добавления хлебных крошек на WordPress сайт. Он очень гибкий, простой в использовании, и содержит такое количество опций, что вы дажене сможете себе представить.
Первым делом вам необходимо установить и активировать плагин Breadcrumb NavXT. После активации переходим на страницу Настройки » Breadcrumb NavXT для конфигурации настроек плагина.
Настройки по-умолчанию должны сработать для большинства сайтов. Однако, вы можете вносить свои изменения для кастомизации на своё усмотрение.
Страница настроек разделена на две различные секции. На вкладке general вы можете определить общее поведение плагина на вашем сайте.
Здесь можно изменить шаблон хлебных крошек. Вы также можете заметить, что эти ссылки шаблонов используют параметры Schema.org в тегах ссылок.
Вкладка post types под настройками плагина позволит вам настроить ссылки хлебных крошек для записей, страниц и любых произвольных типов записей.
Вы можете выбрать как вы хотите отображать иерархию записей. По-умолчанию плагин будет использовать Название сайта > Рубрика > Заголовок записи. Вы можете заменить рубрики на теги, даты или родительские записи.
Вкладка taxonomies и authors содержат схожие шаблоны для ваших ссылок хлебных крошек.
Не забудьте нажать на кнопку сохранения изменений как только закончите настройку.
Хлебные крошки на сайте WordPress: как создать и настроить
Хлебные крошки (breadcrumbs) — это элемент навигации страницы, который показывает цепочку ссылок от главной до текущей страницы, которую просматривает пользователь.
Хлебные крошки помогают посетителю легко сориентироваться по сайту и в любой момент перейти на несколько уровней выше, а поисковым системам — распределить ссылочный вес по страницам и разобраться в структуре сайта.
По умолчанию WordPress не дает вывести и настроить хлебные крошки — за такие аспекты обычно отвечают темы, специальные плагины или скрипты. Рассказываем, как добавить хлебные крошки на сайт на WordPress.
Настройка через плагин YoastSEO
Один из самых простых способов создать крошки на сайте — использовать плагин YoastSEO. Его легко настраивать, при этом плагин умеет оптимизировать для SEO весь сайт — например, задавать шаблоны метатегов, настраивать ЧПУ, редактировать robots.txt и многое другое.
Чтобы создать и настроить хлебные крошки с помощью плагина YoastSEO, понадобится выполнить следующие шаги.
- Перейдите в раздел Плагины → Добавить новый в консоли WordPress.
- Введите в поиск название плагина Yoast SEO. Нажмите «Установить».
- После установки плагина нажмите «Активировать».
- Перейдите в раздел Yoast SEO → Отображение в поисковых системах в консоли WordPress. Выберите вкладку «Цепочки навигации». Настройте отображение хлебных крошек.
- После выбора всех настроек нажмите на кнопку «Сохранить изменения».
- Перейдите в раздел Внешний вид → Редактор тем.
- Вставьте следующий код в шаблон header.php между
if ( function_exists(‘yoast_breadcrumb’) )
- Нажмите на кнопку «Обновить файл».
Если вы хотите, чтобы хлебные крошки отображались только на страницах определенных типов, например, только в постах, вместо header.php код можно вставить в конкретный шаблон. page.php обычно отвечает за статические страницы сайта, а single.php — за посты.
В разных темах используются разные шаблоны страниц и их частей. Если вы не понимаете, куда вставить код вывода хлебных крошек в такой теме — проще всего связаться с ее разработчиком и уточнить.
С помощью плагина Breadcrumb NavXT
Один из самых популярных плагинов для создания хлебных крошек — Breadcrumb NavXT. Он отличается от конкурентов тем, что с его помощью вы легко можете настраивать вид хлебных крошек и задавать отдельные шаблоны вывода для разных типов страниц.
- Установите и активируйте плагин Breadcrumb NavXT по аналогии с пунктами 1-3 выше.
- Расположите через редактор тем следующий код в header.php между :
if(function_exists('bcn_display')) < bcn_display();
Чтобы настроить внешний вид хлебных крошек, перейдите в раздел Плагины → Установленные, найдите Breadcrumb NavXT и нажмите «Настройки». Здесь вы сможете настроить разделители, отображение страниц в постраничной навигации, шаблоны ссылок и многое другое.
Настроить плагином Breadcrumb
Вывести хлебные крошки в WordPress можно с помощью плагина Breadcrumb: он легковесный, быстро загружается, и предлагает несколько стилей ссылок на выбор — а еще вы можете настроить свои.
Чтобы настроить вывод крошек через этот плагин, установите его по аналогии с предыдущими пунктами и вставьте следующий код через редактор тем в шаблон header.php:
echo do_shortcode ("[breadcrumb]");
После этого вы сможете настроить внешний вид крошек в разделе Breadcrumb в главном меню консоли WordPress.
Кроме этого, вы можете настроить шаблон вывода цепочки навигации для каждого типа страницы в отдельности. Для этого просто кликайте по соответствующим тегам в том порядке, в котором хотите их видеть на страницах.
Хлебные крошки через bbPress
Плагин форумов для WordPress bbPress умеет выводить хлебные крошки, но только для самого форума и тем. Если вы создаете форум, рекомендуем использовать именно эти встроенные крошки на сайте — они грамотно отображают структуру.
Они включены по умолчанию, но могут не отображаться, если конфликтуют с темой или другими плагинами — чаще всего это происходит из-за включенной цепочки навигации в Yoast SEO.
Создание хлебных крошек без плагина
Чтобы создать цепочку навигации без использования плагинов, придется внести изменения в functions.php вашей темы. Будьте осторожны: при обновлении темы этот код удалится, поэтому любые изменения лучше проводить на дочерней теме.
Чтобы отредактировать functions.php, перейдите в раздел Внешний вид → Редактор тем и найдите его в списке файлов. Вставьте код функции и обновите файл.
Вот пример кода для вывода хлебных крошек от dimox.name:
/* * "Хлебные крошки" для WordPress * автор: Dimox * версия: 2019.03.03 * лицензия: MIT */ function dimox_breadcrumbs() < /* === ОПЦИИ === */ $text['home'] = 'Главная'; // текст ссылки "Главная" $text['category'] = '%s'; // текст для страницы рубрики $text['search'] = 'Результаты поиска по запросу "%s"'; // текст для страницы с результатами поиска $text['tag'] = 'Записи с тегом "%s"'; // текст для страницы тега $text['author'] = 'Статьи автора %s'; // текст для страницы автора $text['404'] = 'Ошибка 404'; // текст для страницы 404 $text['page'] = 'Страница %s'; // текст 'Страница N' $text['cpage'] = 'Страница комментариев %s'; // текст 'Страница комментариев N' $wrap_before = ''; // открывающий тег обертки $wrap_after = ''; // закрывающий тег обертки $sep = ' › '; // разделитель между "крошками" $before = ''; // тег перед текущей "крошкой" $after = ''; // тег после текущей "крошки" $show_on_home = 0; // 1 - показывать "хлебные крошки" на главной странице, 0 - не показывать $show_home_link = 1; // 1 - показывать ссылку "Главная", 0 - не показывать $show_current = 1; // 1 - показывать название текущей страницы, 0 - не показывать $show_last_sep = 1; // 1 - показывать последний разделитель, когда название текущей страницы не отображается, 0 - не показывать /* === КОНЕЦ ОПЦИЙ === */ global $post; $home_url = home_url('/'); $link = ''; $link .= '%2$s'; $link .= ''; $link .= ''; $parent_id = ( $post ) ? $post->post_parent : ''; $home_link = sprintf( $link, $home_url, $text['home'], 1 ); if ( is_home() || is_front_page() ) < if ( $show_on_home ) echo $wrap_before . $home_link . $wrap_after; >else < $position = 0; echo $wrap_before; if ( $show_home_link ) < $position += 1; echo $home_link; >if ( is_category() ) < $parents = get_ancestors( get_query_var('cat'), 'category' ); foreach ( array_reverse( $parents ) as $cat ) < $position += 1; if ( $position >1 ) echo $sep; echo sprintf( $link, get_category_link( $cat ), get_cat_name( $cat ), $position ); > if ( get_query_var( 'paged' ) ) < $position += 1; $cat = get_query_var('cat'); echo $sep . sprintf( $link, get_category_link( $cat ), get_cat_name( $cat ), $position ); echo $sep . $before . sprintf( $text['page'], get_query_var( 'paged' ) ) . $after; >else < if ( $show_current ) < if ( $position >= 1 ) echo $sep; echo $before . sprintf( $text['category'], single_cat_title( '', false ) ) . $after; > elseif ( $show_last_sep ) echo $sep; > > elseif ( is_search() ) < if ( get_query_var( 'paged' ) ) < $position += 1; if ( $show_home_link ) echo $sep; echo sprintf( $link, $home_url . '?s=' . get_search_query(), sprintf( $text['search'], get_search_query() ), $position ); echo $sep . $before . sprintf( $text['page'], get_query_var( 'paged' ) ) . $after; >else < if ( $show_current ) < if ( $position >= 1 ) echo $sep; echo $before . sprintf( $text['search'], get_search_query() ) . $after; > elseif ( $show_last_sep ) echo $sep; > > elseif ( is_year() ) < if ( $show_home_link && $show_current ) echo $sep; if ( $show_current ) echo $before . get_the_time('Y') . $after; elseif ( $show_home_link && $show_last_sep ) echo $sep; >elseif ( is_month() ) < if ( $show_home_link ) echo $sep; $position += 1; echo sprintf( $link, get_year_link( get_the_time('Y') ), get_the_time('Y'), $position ); if ( $show_current ) echo $sep . $before . get_the_time('F') . $after; elseif ( $show_last_sep ) echo $sep; >elseif ( is_day() ) < if ( $show_home_link ) echo $sep; $position += 1; echo sprintf( $link, get_year_link( get_the_time('Y') ), get_the_time('Y'), $position ) . $sep; $position += 1; echo sprintf( $link, get_month_link( get_the_time('Y'), get_the_time('m') ), get_the_time('F'), $position ); if ( $show_current ) echo $sep . $before . get_the_time('d') . $after; elseif ( $show_last_sep ) echo $sep; >elseif ( is_single() && ! is_attachment() ) < if ( get_post_type() != 'post' ) < $position += 1; $post_type = get_post_type_object( get_post_type() ); if ( $position >1 ) echo $sep; echo sprintf( $link, get_post_type_archive_link( $post_type->name ), $post_type->labels->name, $position ); if ( $show_current ) echo $sep . $before . get_the_title() . $after; elseif ( $show_last_sep ) echo $sep; > else < $cat = get_the_category(); $catID = $cat[0]->cat_ID; $parents = get_ancestors( $catID, 'category' ); $parents = array_reverse( $parents ); $parents[] = $catID; foreach ( $parents as $cat ) < $position += 1; if ( $position >1 ) echo $sep; echo sprintf( $link, get_category_link( $cat ), get_cat_name( $cat ), $position ); > if ( get_query_var( 'cpage' ) ) < $position += 1; echo $sep . sprintf( $link, get_permalink(), get_the_title(), $position ); echo $sep . $before . sprintf( $text['cpage'], get_query_var( 'cpage' ) ) . $after; >else < if ( $show_current ) echo $sep . $before . get_the_title() . $after; elseif ( $show_last_sep ) echo $sep; >> > elseif ( is_post_type_archive() ) < $post_type = get_post_type_object( get_post_type() ); if ( get_query_var( 'paged' ) ) < $position += 1; if ( $position >1 ) echo $sep; echo sprintf( $link, get_post_type_archive_link( $post_type->name ), $post_type->label, $position ); echo $sep . $before . sprintf( $text['page'], get_query_var( 'paged' ) ) . $after; > else < if ( $show_home_link && $show_current ) echo $sep; if ( $show_current ) echo $before . $post_type->label . $after; elseif ( $show_home_link && $show_last_sep ) echo $sep; > > elseif ( is_attachment() ) < $parent = get_post( $parent_id ); $cat = get_the_category( $parent->ID ); $catID = $cat[0]->cat_ID; $parents = get_ancestors( $catID, 'category' ); $parents = array_reverse( $parents ); $parents[] = $catID; foreach ( $parents as $cat ) < $position += 1; if ( $position >1 ) echo $sep; echo sprintf( $link, get_category_link( $cat ), get_cat_name( $cat ), $position ); > $position += 1; echo $sep . sprintf( $link, get_permalink( $parent ), $parent->post_title, $position ); if ( $show_current ) echo $sep . $before . get_the_title() . $after; elseif ( $show_last_sep ) echo $sep; > elseif ( is_page() && ! $parent_id ) < if ( $show_home_link && $show_current ) echo $sep; if ( $show_current ) echo $before . get_the_title() . $after; elseif ( $show_home_link && $show_last_sep ) echo $sep; >elseif ( is_page() && $parent_id ) < $parents = get_post_ancestors( get_the_ID() ); foreach ( array_reverse( $parents ) as $pageID ) < $position += 1; if ( $position >1 ) echo $sep; echo sprintf( $link, get_page_link( $pageID ), get_the_title( $pageID ), $position ); > if ( $show_current ) echo $sep . $before . get_the_title() . $after; elseif ( $show_last_sep ) echo $sep; > elseif ( is_tag() ) < if ( get_query_var( 'paged' ) ) < $position += 1; $tagID = get_query_var( 'tag_id' ); echo $sep . sprintf( $link, get_tag_link( $tagID ), single_tag_title( '', false ), $position ); echo $sep . $before . sprintf( $text['page'], get_query_var( 'paged' ) ) . $after; >else < if ( $show_home_link && $show_current ) echo $sep; if ( $show_current ) echo $before . sprintf( $text['tag'], single_tag_title( '', false ) ) . $after; elseif ( $show_home_link && $show_last_sep ) echo $sep; >> elseif ( is_author() ) < $author = get_userdata( get_query_var( 'author' ) ); if ( get_query_var( 'paged' ) ) < $position += 1; echo $sep . sprintf( $link, get_author_posts_url( $author->ID ), sprintf( $text['author'], $author->display_name ), $position ); echo $sep . $before . sprintf( $text['page'], get_query_var( 'paged' ) ) . $after; > else < if ( $show_home_link && $show_current ) echo $sep; if ( $show_current ) echo $before . sprintf( $text['author'], $author->display_name ) . $after; elseif ( $show_home_link && $show_last_sep ) echo $sep; > > elseif ( is_404() ) < if ( $show_home_link && $show_current ) echo $sep; if ( $show_current ) echo $before . $text['404'] . $after; elseif ( $show_last_sep ) echo $sep; >elseif ( has_post_format() && ! is_singular() ) < if ( $show_home_link && $show_current ) echo $sep; echo get_post_format_string( get_post_format() ); >echo $wrap_after; > > // end of dimox_breadcrumbs()
После того, как вы сохраните изменения, добавьте следующий код в файл header.php:
if ( function_exists( 'dimox_breadcrumbs' ) ) dimox_breadcrumbs();
Популярные шаблоны со встроенными хлебными крошками
А самый простой способ настроить хлебные крошки — установить тему, в которой они уже реализованы, грамотно настроены и вписываются в общий дизайн.
HESTIA
Тема отлично подходит для блогов и интернет-магазинов. Быстрая, минималистичная, современная тема.
Reboot
Быстрая и хорошо оптимизированная для SEO тема с удобным конструктором главной страницы.
Astra
В теме больше 100 шаблонов для разных типов сайтов. Отлично оптимизирована для поисковых систем.
Root
Качественно проработанная тема российских разработчиков. Большой упор на SEO-оптимизацию и кастомизацию.
Резюме
- Хлебными крошками (breadcrumbs) называют элемент навигации сайта в форме цепочки ссылок от главной страницы до текущей.
- Хлебные крошки помогают улучшить навигацию по сайту и индексацию поисковыми системами.
- По умолчанию WordPress не создает хлебные крошки.
- Чтобы создать хлебные крошки на сайте WordPress, можно воспользоваться специальными плагинами — Breadcrumbs, Breadcrumbs NavXT, Yoast SEO.
- Или использовать готовый код для вывода крошек без плагинов.
- Во многих SEO-оптимизированных темах для WordPress хлебные крошки выводятся без дополнительных настроек.
Анита Арико
Автор, копирайтер, интернет-маркетолог. За 6 лет в сфере побывала по обе стороны баррикад — работала со сторон и подрядчиков, и заказчиков. Пишу об интернет-маркетинге на языке предпринимателей.
Как сделать хлебные крошки
Хлебные крошки — это способ навигации, который показывает ваше текущее расположение на сайте и путь, по которому к нему можно попасть, начиная с главной страницы.
В этом уроке расскажу, как сделать правильные хлебные крошки на сайте WordPress без плагинов.
Для того, чтобы добавить хлебные крошки на сайт на WordPress вам не нужен специальный плагин «хлебные крошки», не нужно самому долго и мучительно придумывать как «сделать» хлебные крошки на сайте, играясь с условными тегами WordPress, а достаточно скопировать и вставить эту строчку в то место в шаблоне, куда вам нужно.
true_breadcrumbs();
Понятно, что не спешите сохранять файл (особенно не на тестовом сайте), ведь этой функции у вас сейчас нет и вы столкнётесь с ошибкой 500.
Функция хлебных крошек
Теперь распишем саму функцию, сразу говорю, готовьтесь, что будет много кода.
Дело в том, что я выкладываю полностью законченный и 100% рабочий вариант. Здесь учтены все типы страниц, которые только могут быть на WordPress: посты, страницы, вложенные страницы(поддерживается любое количество уровней вложенности), рубрики, подрубрики (неограниченное количество вложений), теги, архивы, страницы поиска, страницы с записями какого-либо одного автора.
Давайте сначала начнём с относительно несложного варианта хлебных крошек, и чуть ниже в этом же уроке я вам расскажу, как их модифицировать под какую-то свою определённую задачу. Для начала добавьте этот код functions.php :
function true_breadcrumbs(){ // получаем номер текущей страницы $page_num = ( get_query_var( 'paged' ) ) ? get_query_var( 'paged' ) : 1; $separator = ' / '; // разделяем обычным слэшем, но можете чем угодно другим // если главная страница сайта if( is_front_page() ){ if( $page_num > 1 ) { echo ' . site_url() . '">Главная' . $separator . $page_num . '-я страница'; } else { echo 'Вы находитесь на главной странице'; } } else { // не главная echo ' . site_url() . '">Главная' . $separator; if( is_single() ){ // записи the_category( ', ' ); echo $separator; the_title(); } elseif ( is_page() ){ // страницы WordPress the_title(); } elseif ( is_category() ) { single_cat_title(); } elseif( is_tag() ) { single_tag_title(); } elseif ( is_day() ) { // архивы (по дням) echo ' . get_year_link( get_the_time( 'Y' ) ) . '">' . get_the_time( 'Y' ) . '' . $separator; echo ' . get_month_link( get_the_time( 'Y' ), get_the_time( 'm' ) ) . '">' . get_the_time( 'F' ) . '' . $separator; echo get_the_time('d'); } elseif ( is_month() ) { // архивы (по месяцам) echo ' . get_year_link( get_the_time( 'Y' ) ) . '">' . get_the_time( 'Y' ) . '' . $separator; echo get_the_time('F'); } elseif ( is_year() ) { // архивы (по годам) echo get_the_time( 'Y' ); } elseif ( is_author() ) { // архивы по авторам global $author; $userdata = get_userdata( $author ); echo 'Опубликовал(а) ' . $userdata->display_name; } elseif ( is_404() ) { // если страницы не существует echo 'Ошибка 404'; } if ( $page_num > 1 ) { // номер текущей страницы echo ' (' . $page_num . '-я страница)'; } } }
- 4 – при помощи get_query_var() мы определяем, находимся ли мы на странице постраничной навигации, знаю, что это можно сделать при помощи is_paged(), но нам же ведь ещё и номер страницы понадобится.
- 6 – разделитесь между ссылками в хлебных я решил записать в переменную, вы можете использовать что угодно, например стрелки → → , запись его в переменную позволит нам быстро его поменять, если захотим.
- 9 – функция, а точнее условный тег is_front_page() возвращает true , если мы находимся на главной странице, вне зависимости от того, какую роль она выполняет.
- 12 , 19 – функция site_url() динамически возвращает ссылку на главную страницу сайта.
- is_single(), is_page(), is_category(), is_tag(), is_day(), is_month(), is_year(), is_author(), is_404() – различные условные теги, позволяющие легко определить, на каком типе страницы мы в данный момент находимся.
- 25 – я использовал функцию the_category() для вывода списка рубрик для текущей записи через запятую. Обратите внимание, что эта функция не распределяет рубрики в зависимости от их иерархии. О том, как вывести их с соблюдением порядка иерархии, читайте ниже.
- 25 , 29 – функция the_title() отлично подходит для того, чтобы вывести заголовок текущей записи, страницы или записи произвольного типа.
- single_cat_title() и single_tag_title() – для вывода название текущей рубрики или метки соответственно.
Как в хлебные крошки добавить родительские страницы?
Возможно вы заметили, что Страницы WordPress – это иерархичный тип записи, другими словами – Страница может иметь дочерние страницы, причем несколько штук и нескольких уровней.
Это можно хорошо наблюдать в метабоксе Атрибуты страницы:
Если вы планируете отображать в своих хлебных крошках родительские страницы тоже, то вам нужно немного модифицировать соответствующие строчки в коде выше:
global $post; // если у текущей страницы существует родительская if ( $post->post_parent ) { $parent_id = $post->post_parent; // присвоим в переменную $breadcrumbs = array(); while ( $parent_id ) { $page = get_page( $parent_id ); $breadcrumbs[] = ' . get_permalink( $page->ID ) . '">' . get_the_title( $page->ID ) . ''; $parent_id = $page->post_parent; } echo join( $separator, array_reverse( $breadcrumbs ) ) . $separator; }
То есть вставляете этот код на 27-й строчке ничего не удаляя из первоначального кода.
Как в хлебных крошках вывести родительские рубрики WordPress с учётом иерархии?
В архивах рубрик
Тут ситуация похожа на ситуацию со страницами, но проще, так как существует функция get_category_parents().
$current_cat = get_queried_object(); // если родительская рубрика существует if( $current_cat->parent ) { echo get_category_parents( $current_cat->parent, true, $separator ) . $separator; }
На страницах записей
Как я уже написал выше, наша функция the_category() не справляется с тем, чтобы вывести рубрики с учетом их иерархичности. Давайте попробуем разобраться, что с этим можно поделать.
Тут есть некоторые тонкости, но смотрите, есть очень классный способ, как можно это всё разрулить!
Прежде всего, обратите внимание, как вы добавляете пост в категории. Нам подходит:
После этого можно спокойно использовать функцию get_category_parents():
$post_categories = get_the_category(); // это и будет наша единственная рубрика, присвоенная к посту if( ! empty( $post_categories[0]->cat_ID ) ) { echo get_category_parents( $post_categories[0]->cat_ID, true, $separator ) . $separator; } the_title();
Произвольными типы постов и их таксономии в хлебных крошках с учётом иерархии
На самом деле тут всё максимально похоже на код, который мы использовали для рубрик/меток и записей/страниц.
Хлебные крошки для архивов таксономии
Если без иерархии:
if( is_tax( $taxonomy_name ) ) { single_term_title(); // название текущего элемента таксономии }
if( is_tax( $taxonomy_name ) ) { $current_term = get_queried_object(); // если родительский элемент таксономии существует if( $current_term->parent ) { echo get_term_parents_list( $current_term->parent, $taxonomy_name, array( 'separator' => $separator ) ) . $separator; } single_term_title(); }
Хлебные крошки для произвольных типов постов
Если мы вообще не хотим отображать никаких таксономий, то наш пример становится очень похож на пример с обычными Страницами:
if( is_singular( $post_type_name ) ) { the_title(); }
В случае, если нам нужно также добавить какую-то произвольную таксономию:
if( is_singular( $post_type_name ) ) { $post_terms = get_the_terms( get_the_ID(), $taxonomy_name ); if( ! empty( $post_terms[0]->term_id ) ) { echo get_term_parents_list( $post_terms[0]->term_id, $taxonomy_name, array( 'separator' => $separator ) ) . $separator; } the_title(); }
Кстати, видел на других блогах функцию хлебных крошек длиной в 5-10 строк 🙂 Люди копипастят даже не задумываясь, понятно, что у них очень урезанные варианты.
Миша
Впервые познакомился с WordPress в 2009 году. Организатор и спикер на конференциях WordCamp. Преподаватель в школе Нетология.
Пишите, если нужна помощь с сайтом или разработка с нуля.