WordPress: «Хлебные крошки» своими руками.
Привет, читатели!!! Сегодня я расскажу вам о таком элементе, как «Хлебные крошки». В сети вы можете найти множество плагинов, позволяющих вам установить «хлебные крошки», но я вам расскажу, как это можно сделать и без плагина. Всего в несколько действий. Вам лишь потребуется прописать код, в нужном месте.
Но сначала немного, о том что такое «хлебные крошки» и в чем их плюсы.
«Хлебные крошки» или Навигационная цепочки или Breadcrumbs — элемент навигации по веб-сайту, представляющий путь от главной страницы до текущей записи.
Example: Главная страница → Раздел → Подраздел → Текущая страница
На своем блоге я не использую данную навигацию ибо считаю ее здесь не нужной. Но для «больших» сайтов, где используется очень много рубрик и подрубик, я считаю «хлебные крошки» очень важным элементом, иначе посетитель может попросту заблудиться на вашем безграничном сайте.
У ручного метода вывода «Хлебных крошек» есть ряд своих преимуществ:
А вот и сами «Хлебные крошки»:
function breadcrumbs() {
$delimiter = '»';
$home = 'Главная;
$before = '';
$after = '';
if ( !is_home() && !is_front_page() || is_paged() ) {
echo '
';
global $post;
$homeLink = get_bloginfo('url');
echo '' . $home . ' ' . $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_day() ) {
echo '' . get_the_time('Y') . ' ' . $delimiter . ' ';
echo '' . get_the_time('F') . ' ' . $delimiter . ' ';
echo $before . get_the_time('d') . $after;
} elseif ( is_month() ) {
echo '' . get_the_time('Y') . ' ' . $delimiter . ' ';
echo $before . get_the_time('F') . $after;
} elseif ( is_year() ) {
echo $before . get_the_time('Y') . $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 '' . $post_type->labels->singular_name . ' ' . $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;
}
} elseif ( !is_single() && !is_page() && get_post_type() != 'post' ) {
$post_type = get_post_type_object(get_post_type());
echo $before . $post_type->labels->singular_name . $after;
} elseif ( is_attachment() ) {
$parent = get_post($post->post_parent);
$cat = get_the_category($parent->ID); $cat = $cat[0];
echo get_category_parents($cat, TRUE, ' ' . $delimiter . ' ');
echo '' . $parent->post_title . ' ' . $delimiter . ' ';
echo $before . get_the_title() . $after;
} elseif ( is_page() && !$post->post_parent ) {
echo $before . get_the_title() . $after;
} elseif ( is_page() && $post->post_parent ) {
$parent_id = $post->post_parent;
$breadcrumbs = array();
while ($parent_id) {
$page = get_page($parent_id);
$breadcrumbs[] = '' . get_the_title($page->ID) . '';
$parent_id = $page->post_parent;
}
$breadcrumbs = array_reverse($breadcrumbs);
foreach ($breadcrumbs as $crumb) echo $crumb . ' ' . $delimiter . ' ';
echo $before . get_the_title() . $after;
} elseif ( is_search() ) {
echo $before . 'Результаты поиска по запросу "' . get_search_query() . '"' . $after;
} elseif ( is_tag() ) {
echo $before . 'Записи с тегом "' . single_tag_title('', false) . '"' . $after;
} elseif ( is_author() ) {
global $author;
$userdata = get_userdata($author);
echo $before . 'Статьи автора ' . $userdata->display_name . $after;
} elseif ( is_404() ) {
echo $before . 'Error 404' . $after;
}
if ( get_query_var('paged') ) {
if ( is_category() || is_day() || is_month() || is_year() || is_search() || is_tag() || is_author() ) echo ' (';
echo __('Page') . ' ' . get_query_var('paged');
if ( is_category() || is_day() || is_month() || is_year() || is_search() || is_tag() || is_author() ) echo ')';
}
echo '
';
}
}
Данный код нужно поместить в файл functions.php. Теперь вам остается добавить еще одну строчку в то место, где вы хотите разместить цепочку:
<!--?php if (function_exists('breadcrumbs')) breadcrumbs(); ?-->
Некоторые люди размещают свои статьи в несколько рубрик, но этой функции и это не страшно. Все рубрики, в которых находится статья, будут указаны в цепочке через запятую. Да кстати, чуть не забыл эта функция может работать только на движке WordPress 2.5 и выше…
А вы используете на своем блоге «Хлебные крошки»???
Читаем похожие статьи:
Комментарии к записи “WordPress: «Хлебные крошки» своими руками.”
Прокомментировать
Рубрики
- My life
- Secrets
- Seo
- Wordpress
- Апдейты
- Высокие технологии
- Конкурсы/Акции
- Новости
- Обозреватель
- Плагины
- Полезно знать
- Продвижение
- Работа
- Сайты, сервисы…
- Эстафеты
Самое популярное
- Социальные сети для блогеров!
- Я в GoGetLinks или что нужно, чтобы попасть в GGL!
- Плагин для Wordpress: Комментарии Disqus на ваш блог.
- "Как поднять ТиЦ?" Теория о том, что нужно делать!
- Wordpress: Защита блога. Просто и эффективно
- БлогоКэш - биржа естественных ссылок
- Тест GoGetLinks: Увеличь количество заявок с 20 до 200.
- Wordpress: "Хлебные крошки" своими руками.
- Продвижение неизбежно! Беспроигрышный конкурс!
- Эстафета: "Мои планы на лето"


Странно, у меня хлебные крошки были уже в самом шаблоне. Наверное удачно выбрал:-)
В некоторых шаблонах сразу ставят подобную навигацию! Это очень удобно
Я конечно редко их встречал, но все же они есть)))
Добротный пост. Одобряю
На WordPress 3.x.x будет работать?
Да, будет работать, тестировал на своем блоге когда движок 3.1.1 был.
Скажите пожалуйста, а куда именно надо вставить этот скрипт.
С уважением, сергей
Вам нужно разместить данный код в файл functions.php, который лежит в папке с темой вашего блога.