Хлебные крошки на Wordpress сайте

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

видео Хлебные крошки на Wordpress сайте

Хлебные крошки wordpress || Плагин Yoast Seo

"Хлебные крошки" - это навигационные ссылки, которые не только облегчают навигацию по сайту, но и улучшают перелинковку страниц сайта. Добавить хлебные крошки на WordPress сайт не составит труда, потому что для этого разработаны специальные плагины и php функции.



Хлебные крошки на WordPress с помощью плагина

Breadcrumb NavXT - пожалуй лучший плагин для размещения хлебных крошек на WordPress сайте. Установить этот плагин можно прямо в админке WordPress, введя название плагина в поле поиска плагинов. После установки плагина, необходимо немного отредактировать шаблон вашей темы и добавить в него следующий код. Код можно добавить в файл header.php перед основным контентом, но все зависит от используемой темы.


Хлебные крошки Wordpress без плагина - Константин Хмелев

<div class="crumb"> <?php if(function_exists('bcn_display')) { bcn_display(); } ?> </div>

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

Хлебные крошки на WordPress без плагина

Также, хлебные крошки на WordPress сайт можно поставить без использования плагинов. Этот способ не самый простой, но при достаточных знаниях PHP очень гибкий. Для размещения хлебных крошек на WordPress необходимо добавить следующий код в файл functions.php:


Создание Wordpress Темы (Шаблона) с нуля - Урок 8 Хлебные крошки (Breadcrumbs) Wordpress

/* Хлебные крошки */ function my_breadcrumbs( $sep=' » ', $term=false, $taxonomies=false ){ global $post, $wp_query, $wp_post_types; &nbsp;&nbsp; &nbsp;// для локализации &nbsp;&nbsp; &nbsp;$l = (object) array( &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;'home' => 'Главная' &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;,'paged' => 'Страница %s' &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;,'p404' => 'Ошибка 404' &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;,'search' => 'Результаты поиска по зпросу - <b>%s</b>' &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;,'author' => 'Архив автора: <b>%s</b>' &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;,'year' => 'Архив за <b>%s</b> год' &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;,'month' => 'Архив за: <b>%s</b>' &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;,'attachment' => 'Медиа: %s' &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;,'tag' => 'Записи по метке: <b>%s</b>' &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;,'tax_tag' => '%s из "%s" по тегу: <b>%s</b>' &nbsp;&nbsp; &nbsp;); &nbsp;&nbsp; &nbsp;if( $paged = $wp_query->query_vars['paged'] ){ &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;$pg_patt = '<a href="%s">'; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;$pg_end = '</a>'. $sep . sprintf($l->paged, $paged); &nbsp;&nbsp; &nbsp;} &nbsp;&nbsp; &nbsp;if( is_front_page() ) &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;return print ($paged?sprintf($pg_patt, get_bloginfo('url')):'') . $l->home . $pg_end; &nbsp;&nbsp; &nbsp;if( is_404() ) &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;$out = $l->p404; &nbsp;&nbsp; &nbsp;elseif( is_search() ){ &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;$s = preg_replace('@<script.*@i', 'Недопустимые символы', $GLOBALS['s']); &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;$out = sprintf($l->search, $s); &nbsp;&nbsp; &nbsp;} &nbsp;&nbsp; &nbsp;elseif( is_author() ){ &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;$q_obj = &$wp_query->queried_object; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;$out = ($paged?sprintf( $pg_patt, get_author_posts_url($q_obj->ID, $q_obj->user_nicename) ):'') . sprintf($l->author, $q_obj->display_name) . $pg_end; &nbsp;&nbsp; &nbsp;} &nbsp;&nbsp; &nbsp;elseif( is_year() || is_month() || is_day() ){ &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;$y_url = get_year_link( $year=get_the_time('Y') ); &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;$m_url = get_month_link( $year, get_the_time('m') ); &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;$y_link = '<a href="'. $y_url .'">'. $year .'</a>'; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;$m_link = '<a href="'. $m_url .'">'. get_the_time('F') .'</a>'; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;if( is_year() ) &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;$out = ($paged?sprintf($pg_patt, $y_url):'') . sprintf($l->year, $year) . $pg_end; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;elseif( is_month() ) &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;$out = $y_link . $sep . ($paged?sprintf($pg_patt, $m_url):'') . sprintf($l->month, get_the_time('F')) . $pg_end; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;elseif( is_day() ) &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;$out = $y_link . $sep . $m_link . $sep . get_the_time('l'); &nbsp;&nbsp; &nbsp;} &nbsp;&nbsp; &nbsp;// Страницы и древовидные типы записей &nbsp;&nbsp; &nbsp;elseif( $wp_post_types[$post->post_type]->hierarchical ){ &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;$parent = $post->post_parent; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;$crumbs=array(); &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;while($parent){ &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp; $page = &get_post($parent); &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp; $crumbs[] = '<a href="'. get_permalink($page->ID) .'" title="">'. $page->post_title .'</a>'; //$page->guid &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp; $parent = $page->post_parent; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;} &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;$crumbs = array_reverse($crumbs); &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;foreach ($crumbs as $crumb) &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;$out .= $crumb.$sep; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;$out = $out . $post->post_title; &nbsp;&nbsp; &nbsp;} &nbsp;&nbsp; &nbsp;else // Таксономии, вложения и не древовидные типы записей &nbsp;&nbsp; &nbsp;{ &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;// Определяем термины &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;if(!$term){ &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;if( is_single() ){ &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;if( !$taxonomies ){ &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;$taxonomies = get_taxonomies( array('hierarchical'=>true, 'public'=>true) ); &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;if( count($taxonomies)==1 ) $taxonomies = 'category'; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;} &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;if ( !$post ) $post = $wp_query->get_queried_object(); // Jпределяем глобальную переменную, чтобы работало без шаблонов!!! &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;if( $term = get_the_terms( $post->post_parent?$post->post_parent:$post->ID, $taxonomies ) ) &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;$term = array_shift($term); &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;} &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;else &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;$term = $wp_query->get_queried_object(); &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;} &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;if( !$term && !is_attachment() ) &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;return print "Error: Taxonomy isn`t defined!"; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;$pg_term_start = $paged ? sprintf( $pg_patt, get_term_link( (int)$term->term_id, $term->taxonomy ) ) : ''; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;if( is_attachment() ){ &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;if(!$post->post_parent) &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;$out = sprintf($l->attachment, $post->post_title); &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;else &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;$out = crumbs_tax($term->term_id, $term->taxonomy, $sep) . "<a href='". get_permalink($post->post_parent) ."'>". get_the_title($post->post_parent) ."</a>{$sep}{$post->post_title}"; //$ppost->guid &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;} &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;elseif( is_single() ) &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;$out = crumbs_tax($term->parent, $term->taxonomy, $sep) . "<a href='". get_term_link( (int)$term->term_id, $term->taxonomy ) ."'>{$term->name}</a>{$sep}{$post->post_title}"; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;// Метки или произвольные одноуровневые таксономии &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;elseif( !is_taxonomy_hierarchical($term->taxonomy) ){ &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;if( is_tag() ) &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;$out = $pg_term_start . sprintf($l->tag, $term->name) . $pg_end; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;else { &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;$post_label = $wp_post_types[$post->post_type]->labels->name; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;$tax_label = $GLOBALS['wp_taxonomies'][$term->taxonomy]->labels->name; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;$out = $pg_term_start . sprintf($l->tax_tag, $post_label, $tax_label, $term->name) .&nbsp; $pg_end; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;} &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;}// Рубрики и таксономии &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;else &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;$out = crumbs_tax($term->parent, $term->taxonomy, $sep) . $pg_term_start . $term->name . $pg_end; &nbsp;&nbsp; &nbsp;} $home = '<a href="'. get_bloginfo('url') .'">'. $l->home .'</a>' . $sep; return print $home . $out; } function crumbs_tax($term_id, $tax, $sep){ $termlink = array(); while( (int)$term_id ){ $term2 = get_term( $term_id, $tax ); $termlink[] = '<a href="'. get_term_link( (int)$term2->term_id, $term2->taxonomy ) .'">'. $term2->name .'</a>'. $sep; $term_id = (int)$term2->parent; } $termlinks = array_reverse($termlink); return implode('', $termlinks); }

После этого нужно вызвать эту функцию в файле header.php следующим образом:

<div class="bbcrumb"><?php my_breadcrumbs(); ?></div>

Подписывайтесь и получайте полезные статьи на почту!

rss