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

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

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

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

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

Термин «Хлебные крошки» (по-английски Breadcrumbs) был взят из немецкой сказки братьев Гримм. В этой сказке дети отмечали свой путь в лес, оставляя после себя на своем пути хлебные крошки, чтобы ориентируясь по оставленным хлебным крошкам, у них оставалась возможность вернуться домой.

На своем блоге я уже описывал установку хлебных крошек с помощью плагина Breadcrumb NavXT.

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

Внимание! Перед установкой кода сделайте резервные копии файлов, в которые вы будете вставлять коды, чтобы в случае неполадок восстановить работоспособность вашей темы WordPress.

Для установки хлебных крошек вам необходимо будет вставить несколько кодов в соответствующие файлы вашей темы.

Устанавливать навигацию хлебные крошки на главную страницу блога не требуется. Посетитель, набирая в поиске название сайта, в абсолютном большинстве случаев, итак в выдаче будет направлен на главную страницу сайта.

скачать яндекс браузер

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

Два варианта кода потребуется вставить в следующие файлы темы: «Функции темы (functions.php)», «Одна запись (single.php)», «Шаблон страницы (page.php)», «Архивы (arhvie.php)», «Результаты поиска (search.php)».

Первый код нужно будет вставить в файл «Функции темы (functions.php)», установленной на вашем блоге темы WordPress.

 // хлебные крошки
function dimox_breadcrumbs() {

  $showOnHome = 0; // 1 - показывать "хлебные крошки" на главной странице, 0 - не показывать
  $delimiter = '»'; // разделить между "крошками"
  $home = 'Главная'; // текст ссылка "Главная"
  $showCurrent = 1; // 1 - показывать название текущей статьи/страницы, 0 - не показывать
  $before = ''; // тег перед текущей "крошкой"
  $after = ''; // тег после текущей "крошки"

  global $post;
  $homeLink = get_bloginfo('url');

  if (is_home() || is_front_page()) {

    if ($showOnHome == 1) echo '<div id="crumbs"><a href="' . $homeLink . '">' . $home . '</a></div>';

  } else {

    echo '<div id="crumbs"><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_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() && !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 . ' ';
        if ($showCurrent == 1) echo $before . get_the_title() . $after;
      } else {
        $cat = get_the_category(); $cat = $cat[0];
        echo get_category_parents($cat, TRUE, ' ' . $delimiter . ' ');
        if ($showCurrent == 1) echo $before . get_the_title() . $after;
      }

    } elseif ( !is_single() && !is_page() && get_post_type() != 'post' && !is_404() ) {
      $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 '<a href="' . get_permalink($parent) . '">' . $parent->post_title . '</a> ' . $delimiter . ' ';
      if ($showCurrent == 1) echo $before . get_the_title() . $after;

    } elseif ( is_page() && !$post->post_parent ) {
      if ($showCurrent == 1) 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[] = '<a href="' . get_permalink($page->ID) . '">' . get_the_title($page->ID) . '</a>';
        $parent_id  = $page->post_parent;
      }
      $breadcrumbs = array_reverse($breadcrumbs);
      foreach ($breadcrumbs as $crumb) echo $crumb . ' ' . $delimiter . ' ';
      if ($showCurrent == 1) 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 '</div>';

  }
} // end dimox_breadcrumbs()

Для вставки этого кода в файл установленной на вашем сайте темы, нужно войти в «Админ-панель WordPress» => «Внешний вид» => «Редактор => «Шаблоны», и там нажать на пункт «Функции темы (functions.php)».

В окне «Редактировать темы», в файл «Функции темы ((functions.php)» потребуется вставить первый код в самом верху файла, после <?php, как это показано стрелкой на изображении.

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

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

Если вы хотите, чтобы на странице сайта, в навигации хлебные крошки не отображалось название той страницы, на которой вы находитесь в данный момент, то для этого нужно в следующей строке поменять цифру «1» на цифру «0».

После вставки кода и сделанных в нем по вашему желанию изменений, нажимаете на кнопку «Обновить файл».

Следующий код нужно будет вставить в несколько файлов установленной у вас темы: «Одна запись (single.php)», «Шаблон страницы (page.php)», «Архивы (arhvie.php)», «Результаты поиска (search.php)».

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

В файл «Одна запись (single.php)», отвечающий за страницам со статьями, код вставляется в место, показанное на изображении.

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

После вставки этого кода нужно нажать на кнопку «Обновить файл».

Идеальный выбор начинающих и небольших сайтов

В файл «Архивы (arhvie.php)», вставляете этот код, в место, которое выделено в рамке на изображении.

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

Потом нажимаете на кнопку «Обновить файл».

В файл «Результаты поиска (search.php)», отвечающий за поиск по сайту, вставляете код в место, указанное на изображении.

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

После того, как вы вставили код, нажимаете на кнопку «Обновить файл».

В файл «Шаблон страницы (page.php)», отвечающий за статические страницы, вставляете код, как это показано на изображении.

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

После установки кода нажимаете на кнопку «Обновить файл».

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

Можно еще добавить такой код в файл «Таблица стилей (style.ccs)»:

/* Хлебные крошки */	
#crumbs { 
padding:10px 10px 0 15px; max-height:20px; overflow:hidden; line-height: 180%;
  border-radius:0 0 8px 8px;
  -moz- border-radius:0 0 8px 8px;
  -webkit- border-radius:0 0 8px 8px;}

Этот код вставляется в самом конце файла «Таблица стилей (style.ccs)» для изменения внешнего вида установленной навигации хлебные крошки. Код для вставки в файл «Таблица стилей (style.php)» может иметь и другие характеристики (размеры, отступы и т.д.). Вставлять такой или подобный код на свой блог совсем не обязательно.

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

Теперь на вашем блоге установлены Хлебные крошки без использования плагина. Создателем этой функции является известный блоггер Dimox (Дмитрий).

браузер

Понравилась статья — нажмите на кнопки:

Подписаться на обновления блога

26 комментариев

  1. Очень хорошо и доступно изложено, остаётся только — взять и сделать! Спасибо большое — всё сделала (без плагина), всё получилось!

  2. Да, правильная переленковка, действительно дает очень сильный толчек в продвижении.

    • Я по своему опыту знаю, что правильная перелинковка очень хорошо влияет на повышение посещаемости сайта.

  3. Василий, спасибо за отличную статью. Все понятно и доходчиво. «Хлебные крошки» установила на все сайты.

  4. Уважаемый Василий! Объясните мне новичку по поводу хлебных крошек. Какую пользу они приносят сайту, обеспечивают ли они перелинковку и как узнать, что на сайте они есть.

    • Хлебные крошки — это навигация по сайту. Они делают внутреннюю перелинковку сайта, то есть связывают отдельные статьи, с рубриками и с главной страницей сайта, улучшая при этом SEO сайта.
      Хлебные крошки можно увидеть на странице со статьей, под шапкой сайта — это полоска ссылок.
      Ставить их или нет? Это решать вам.
      Я сам только недавно их поставил на свой сайт, и, возможно, скоро удалю из-за лишних ссылок. У меня и без хлебных крошек сделана внутренняя перелинковка, а они дают еще много дополнительных ссылок. А иметь слишком много ссылок тоже не очень хорошо.

      • В «хлебных крошках» постоянно присутствует ссылка на главную — это постоянные ее дубли и на каждой странице: вред! Достаточно указать категорию (рубрику), что, как известно делается в редакторе статей современных версий вордпресс. Зачем теперь плагин и все эти коды?
        «Хлебные крошки» были популярны и нужны для оптимизации и перелинковки раньше, в старых версиях вордпресс. Теперь материал об этой функции, устарел.
        Я так думаю…

        • Не знаю, может быть и так. Сейчас посмотрел на сайты ведущих сеошных блоггеров. У большинства хлебные крошки установлены.

          • Большинство популярных блогеров создавали свои сайты давненько и тогда это было актуально. Молодые подражают, не вникнув суть происходящего.

          • Может вы и правы.
            По своему опыту скажу, что после установки на сайт хлебных крошек, вреда никакого не заметил, скорее даже произошло общее улучшение всех показателей сайта.

  5. Что ж автора то не указали?

    • Автор этого метода — Dimox. Добавил предложение про автора в статью, я на авторство не претендую.

  6. Спасибо за разъяснение, но что-то мне с трудом даются хлебные крошки.

    • Если вам не хочется делать Хлебные крошки кодом, то можно их поставить на сайт при помощи плагина.

  7. Установил себе плагин Yoast WordPress SEO, он поддерживает функцию «Хлебные крошки». Да и вообще, классный плагин, много полезный настроек, которые избавляют от необходимости устанавливать дополнительные плагины.

  8. Здравствуйте, Василий! Как вы считаете хлебные крошки нужно обязательно ставить? Кстати, на вашем блоге я впервые — очень понравился дизайн!

    • Хлебные крошки — это дополнительная навигация и перелинковка. Ставить их не обязательно. Хлебные крошки могут принести пользу, вреда точно не будет.

  9. Я тоже сделала для себя. Правда поставила везде, кроме search и архива. В архиве, мне кажется, все равно, а в шаблон «поиск» вставляю и получаю 502 стр. Без кода «поиск» нормально работает. Поэтому решила, что и так хорошо. Спасибо.
    Василий, мне тоже понравился дизайн. Как называется ваш шаблон? Мне очень нужен самый простой, без наворотов, но как у вас Н1 — один на Главной. Может подскажете…

    • Моя тема не самая простая для настройки. Посмотрите на сайте:

      http://themes-store.ru/
  10. Спасибо большое, у меня все получилось! Именно потому, что не знала куда именно ставить код, не хотела связываться. А у вас все очень понятно написано, куда, в какой файл, и наглядно показано.

  11. Спасибо огромное за статью, все понятно и по пунктам, за 5 минут «хлебные крошки» на сайт установила без всяких заморочек. Dimoxу респект за код!

  12. Здраствуйте, подскажите нужно ли ставить ссылку на главную страницу в конце статьи для продвижения, если в плагине хлебные крошки уже есть ссылка на главную страницу в статье?

    • Я думаю, что не нужно. Вы же продвигаете в поиске страницы сайта по поисковым запросам, а не главную страницу.

  13. Весьма ценная статья

  14. Благодарю автора! Все работает как надо!

  15. А я выбрал другой путь, с помощью плагина SEO by Yoast. Отличный плагин с большими возможностями.

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

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