Делаем «хлебные крошки» без помощи плагина

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

Добрый день!

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

Однако далеко не все они могут внедрить эту полезную функцию на свой ресурс, а это может сказаться на результатах выдачи поисковых систем. Впрочем, зацикливаться на «хлебных крошках» не стоит, так как не знаешь чего и ожидать от тех таки ПС, к примеру новый алгоритм 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 мысли о “Делаем «хлебные крошки» без помощи плагина

  • 04.05.2012 в 06:57
    Permalink

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

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

    Ответить
    • 04.05.2012 в 18:22
      Permalink

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

      Ответить
      • 10.05.2012 в 08:51
        Permalink

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

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

        Ответить
        • 10.05.2012 в 17:11
          Permalink

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

          Ответить

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

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