Как сделать хлебные крошки

Опубликовано: 24.12.2017

видео Как сделать хлебные крошки

Как сделать хлебные крошки

Для тех, кто не знает, хлебные крошки — это способ навигации, который показывает ваше текущее расположение на сайте (кстати, они используются не только на сайтах) и путь, по которому к нему можно попасть, начиная с главной страницы.


Урок 2. Хлебные крошки

Как видите, на этом блоге они тоже есть, находятся сразу же под логотипом.

Для того, чтобы добавить хлебные крошки на сайт, скопируйте и вставьте эту строчку в то место в шаблоне, куда вам нужно.

<?php the_breadcrumb ( ) ?>

Теперь распишем саму функцию, сразу говорю, готовьтесь, что будет много кода.

Дело в том, что я выкладываю полностью законченный и 100% рабочий вариант. Здесь учтены все типы страниц, которые только могут быть на WordPress : посты, страницы, вложенные страницы (поддерживается любое количество уровней вложенности), рубрики, подрубрики (неограниченное количество вложений), теги, архивы, страницы поиска, страницы с записями какого-либо одного автора.

Также отображается номер текущей страницы , что тоже довольно полезно.

Короче засуньте весь этот код в файл functions.php:

function the_breadcrumb ( ) { global $post ; if ( !is_home ( ) ) { echo '<a href="' .site_url ( ). '">Главная</a> &amp;raquo; ' ; if ( is_single ( ) ) { // записи the_category ( ', ' ) ; echo " &amp;raquo; " ; the_title ( ); } elseif ( is_page ( ) ) { // страницы if ( $post -> post_parent ) { $parent_id = $post -> post_parent ; $breadcrumbs = array ( ) ; while ( $parent_id ) { $page = get_page ( $parent_id ) ; $breadcrumbs [ ] = '<a href="' . get_permalink ( $page -> ID ) . '">' . get_the_title ( $page -> ID ) . '</a>' ; $parent_id = $page -> post_parent ; } $breadcrumbs = array_reverse ( $breadcrumbs ) ; foreach ( $breadcrumbs as $crumb ) echo $crumb . ' &amp;raquo; ' ; } echo the_title ( ); } elseif ( is_category ( ) ) { // категории global $wp_query ; $obj_cat = $wp_query -> get_queried_object ( ) ; $current_cat = $obj_cat -> term_id ; $current_cat = get_category ( $current_cat ) ; $parent_cat = get_category ( $current_cat -> parent ) ; if ( $current_cat -> parent != 0 ) echo ( get_category_parents ( $parent_cat , TRUE , ' &amp;raquo; ' ) ) ; single_cat_title ( ); } elseif ( is_search ( ) ) { // страницы поиска echo 'Результаты поиска для "' . get_search_query ( ) . '"' ; } elseif ( is_tag ( ) ) { // теги (метки) echo single_tag_title ( '' , false ) ; } elseif ( is_day ( ) ) { // архивы (по дням) echo '<a href="' . get_year_link (get_the_time ( 'Y' ) ) . '">' . get_the_time ( 'Y' ) . '</a> &amp;raquo; ' ; echo '<a href="' . get_month_link (get_the_time ( 'Y' ) ,get_the_time ( 'm' ) ) . '">' . get_the_time ( 'F' ) . '</a> &amp;raquo; ' ; echo get_the_time ( 'd' ) ; } elseif ( is_month ( ) ) { // архивы (по месяцам) echo '<a href="' . get_year_link (get_the_time ( 'Y' ) ) . '">' . get_the_time ( 'Y' ) . '</a> &amp;raquo; ' ; 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 ( get_query_var ( 'paged' ) ) // номер текущей страницы echo ' (' . get_query_var ( 'paged' ) .'-я страница)' ;   } else { // главная $pageNum =( get_query_var ( 'paged' ) ) ? get_query_var ( 'paged' ) : 1 ; if ( $pageNum > 1 ) echo '<a href="' .site_url ( ). '">Главная</a> &amp;raquo; ' .$pageNum .'-я страница' ; else echo 'Вы находитесь на главной странице' ; } }

Я специально оставил комменты в коде (зелёным цветом), то есть, если вы например не используете архивы на своём сайте, то можете удалить ненужные для вас с 40-й по 51-ю строчки. Вопросы оставляйте в комментариях.

rss