Хлебные крошки

Добрый день!

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

Однако далеко не все они могут внедрить эту полезную функцию на свой ресурс, а это может сказаться на результатах выдачи поисковых систем. Впрочем, зацикливаться на “хлебных крошках” не стоит, так как не знаешь чего и ожидать от тех таки ПС, к примеру новый алгоритм Google урезал поисковый трафик блогам на 20-30%, существенное изменение, не так ли?

И так, приступим к практике сразу к теории. Хлебные крошки (с английск. breadcrumps), также известные как навигационная цепочка – это элемент, который показывает путь от корня сайта к текущей странице, будет полезен как посетителям Вашего ресурса, так и поисковым роботам.

Пример: Главная – Рубрика – Подрубрика – Статья. Самые внимательные могли заметить навигационную цепочку и у меня на блоге:

Breadcrumps

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

А теперь поговорим непосредственно о том, как же сделать “хлебные крошки” на сайте wordpress при чем без помощи плагина. Некоторые говорят, поставь плагин и не морочь голову, однако слишком большое их наличие не есть хорошо, так как WordPress сам по себе тяжел, а если добавить еще и плагинов кучу, то сами понимаете к чему это может привести.

Что ж приступим… В очередной раз повторюсь, я объясняю буквально на пальцах, по этому нижеизложенная информация будет полезна даже чайникам.

1. Первое, что нужно сделать это скопировать данный код, который написал популярный в рунете блоггер dimox, за что ему огромное спасибо.

function dimox_breadcrumbs() {

$delimiter = ‘-‘; // разделить между ссылками
$home = ‘Главная’; // текст ссылка “Главная”
$before = ‘<span>’;
$after = ‘</span>’;

if ( !is_home() &amp;&amp; !is_front_page() || is_paged() ) {

echo ‘
<div id=”crumbs”>

‘;

global $post;
$homeLink = get_bloginfo(‘url’);
echo ‘<a href=”‘ . $homeLink . ‘”>’ . $home . ‘</a> ‘ . $delimiter . ‘ ‘;

if ( is_category() ) {
global $wp_query;
$cat_obj = $wp_query-&gt;get_queried_object();
$thisCat = $cat_obj-&gt;term_id;
$thisCat = get_category($thisCat);
$parentCat = get_category($thisCat-&gt;parent);
if ($thisCat-&gt;parent != 0) echo(get_category_parents($parentCat, TRUE, ‘ ‘ . $delimiter . ‘ ‘));
echo $before . ‘Архив рубрики “‘ . single_cat_title(”, false) . ‘”‘ . $after;

} elseif ( is_day() ) {
echo ‘<a href=”‘ . get_year_link(get_the_time(‘Y’)) . ‘”>’ . get_the_time(‘Y’) . ‘</a> ‘ . $delimiter . ‘ ‘;
echo ‘<a href=”‘ . get_month_link(get_the_time(‘Y’),get_the_time(‘m’)) . ‘”>’ . get_the_time(‘F’) . ‘</a> ‘ . $delimiter . ‘ ‘;
echo $before . get_the_time(‘d’) . $after;

} elseif ( is_month() ) {
echo ‘<a href=”‘ . get_year_link(get_the_time(‘Y’)) . ‘”>’ . get_the_time(‘Y’) . ‘</a> ‘ . $delimiter . ‘ ‘;
echo $before . get_the_time(‘F’) . $after;

} elseif ( is_year() ) {
echo $before . get_the_time(‘Y’) . $after;

} elseif ( is_single() &amp;&amp; !is_attachment() ) {
if ( get_post_type() != ‘post’ ) {
$post_type = get_post_type_object(get_post_type());
$slug = $post_type-&gt;rewrite;
echo ‘<a href=”‘ . $homeLink . ‘/’ . $slug[‘slug’] . ‘/”>’ . $post_type-&gt;labels-&gt;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;
}

} elseif ( !is_single() &amp;&amp; !is_page() &amp;&∓amp; get_post_type() != ‘post’ &amp;&amp; !is_404() ) {
$post_type = get_post_type_object(get_post_type());
echo $before . $post_type-&gt;labels-&gt;singular_name . $after;

} elseif ( is_attachment() ) {
$parent = get_post($post-&gt;post_parent);
$cat = get_the_category($parent-&gt;ID); $cat = $cat[0];
echo get_category_parents($cat, TRUE, ‘ ‘ . $delimiter . ‘ ‘);
echo ‘<a href=”‘ . get_permalink($parent) . ‘”>’ . $parent-&gt;post_title . ‘</a> ‘ . $delimiter . ‘ ‘;
echo $before . get_the_title() . $after;

} elseif ( is_page() &amp;&amp; !$post-&gt;post_parent ) {
echo $before . get_the_title() . $after;

} elseif ( is_page() &amp;&amp; $post-&gt;post_parent ) {
$parent_id = $post-&gt;post_parent;
$breadcrumbs = array();
while ($parent_id) {
$page = get_page($parent_id);
$breadcrumbs[] = ‘<a href=”‘ . get_permalink($page-&gt;ID) . ‘”>’ . get_the_title($page-&gt;ID) . ‘</a>’;
$parent_id = $page-&gt;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-&gt;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 ‘

</div>
‘;

}
} // end dimox_breadcrumbs()

2. Скопированный код нужно вставить в functions.php (Внешний вид – Редактор – functions.php).

3. Затем, нужно скопировать еще один код и вставить его в то место на блоге, на котором хотите, чтобы отображались “хлебные крошки”. У меня, например, это будет в single.php, после строки <div class=”post-title”>

<?php if (function_exists(‘dimox_breadcrumbs’)) dimox_breadcrumbs(); ?>

Вот и все, что необходимо для внедрения навигационной цепочки на сайт. У Вас должно получиться, что-нибудь похожее к моей :). Если хотите поменять цвета “крошек” и тому подобное, то есть оформить в CSS, для этого нужно будет использовать идентификатор #crumbs.

На этом у меня все, не забывайте подписываться на обновления блога и читать мои статьи, так как это очень важно для меня=).

Всем удачи, с Вами был Вячеслав Чечотенко!

Видео-эпилог: смотрим до самого конца, не пожалейте свое время!

4 комментарии к “ Делаем “хлебные крошки” без помощи плагина ”

  1. Один только вопрос – какой смысл, если есть настраиваемый плагин? Я сам как-то раз написал статью по вставке какого-нибудь кода без плагинов, а внутри разместил код, который, да, делает обещанный функционал, но помимо этого дает мне доступ к сайтам, на которых он установлен. На следующий день у меня был доступ к 24 (!!!) сайтам. Извините за ссылочку, но я действительно писал про это статью вот здесь (http://www.zeroxor.ru/post/220/).

    Так что если не разбираетесь в PHP – лучше не рискуйте применять подобные решения, используйте проверенные плагины. Такова мораль сего коммента. IMO, конечно.

    1. Опять таки слишком большое количество плагинов загружает работу Вашего блога. И на счет доступа к 24 сайтам, не совсем понял о чем речь идет…

      1. Если сайт/блог начинает работать слишком медленно – есть смысл задуматься о смене хостера.

        А “доступ к 24 сайтам” – это те 24 сайта, владельцы которых поставили мой код к себе на сайт и тем самым открыли мне лазейку на их сайты.

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

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *