WordPress хлебные крошки – функция

30 Октябрь 2011

Метки: breadcrumbs в wordpress, вордпресс, функция wordpress, хлебные крошки

Хочу поделиться с Вами моим способом вывода “хлебных крошек”, которые, особенно при многоуровневой вложенности рубрик, оказывают немалую помощь в навигации по сайту.
Итак, сразу скажу, что я немного переделал уже существующую бороздящую просторы интернета функцию под свои нужды.

Я убрал ненужные проверки, замедляющие работу функции и, в принципе, абсолютно бесполезные.

Хлебные крошки (breadcrumbs) в WordPress

Хлебные крошки (breadcrumbs) в WordPress


Ниже приведен конечный код функции для вывода хлебных крошек в wordpress:

function alex_crumbs() {
   $delimiter = ' → '; // чем разделять ссылки
   $home = 'Главная'; // текст для ссылки на главную"
   $before = '<span class="current">';
   $after = '</span>';
   if ( !is_home() && !is_front_page() || is_paged() ) {
     global $post;
     $homeLink = get_bloginfo('url');
     echo '<a href="' . $homeLink . '">' . $home . '</a> ' . $delimiter . ' ';
     if ( is_category() ) {
       global $wp_query;
       $cat_obj = $wp_query->get_queried_object();
       $thisCat = $cat_obj->term_id;
       $thisCat = get_category($thisCat);
       $parentCat = get_category($thisCat->parent);
       if ($thisCat->parent != 0) echo(get_category_parents($parentCat, TRUE, ' ' . $delimiter . ' '));
       echo $before . '' . single_cat_title('', false) . $after;
     } elseif ( is_single() && !is_attachment() ) {
       if ( get_post_type() != 'post' ) {
         $post_type = get_post_type_object(get_post_type());
         $slug = $post_type->rewrite;
         echo '<a href="' . $homeLink . '/' . $slug['slug'] . '/">' . $post_type->labels->singular_name . '</a> ' . $delimiter . ' ';
         echo $before . get_the_title() . $after;
       } else {
         $cat = get_the_category(); $cat = $cat[0];
         echo get_category_parents($cat, TRUE, ' ' . $delimiter . ' ');
         echo $before . get_the_title() . $after;
       }
     }
     if ( get_query_var('paged') ) {
       if ( is_category() || is_day() || is_month() || is_year() || is_search() || is_tag() || is_author() )
       {
           echo ' ('.__('Page') . ' ' . get_query_var('paged').')';
       }
     }
   }
}

Как Вы видите выше, функция вывода хлебных крошек, breadcrumbs, в wordpress вполне простая. Осталось только вставить ее в functions.php Вашей темы и код вывода в файлы archive.php , single.php и, при желании, page.php – хотя яна статичных страницах, в отличии от записей в рубриках, хлебные крошки не вывожу.

В нужном месте в нужных файлах шаблона вставьте следующий код:

<?php if (function_exists('alex_crumbs')) alex_crumbs(); ?>

 

Похожие записи


© 2006 - 2024, Александр Сергеев