«Хлебные крошки» для WordPress без использования плагина

«Хлебные крошки» — это важный элемент навигации веб-сайта, который повышает его юзабилити. Особенно это касается сайтов со сложной структурой. Я, к сожалению (а, может, и не к сожалению), не использую их на большинстве своих сайтов, возможно, потому, что у них слишком простая структура ...

Полезные комментарии (2)
Комментарии (512)
  1. 1

    Достаточно полезная функция. Взял на заметку. Иногда полезно видеть весь путь к статье, юзабилити повышает как никак :)

  2. 3

    Димк, а можно скрин или ссылку на пример? А то я что-то не воспринял на слух что и где будет выводится и как оно вообще выглядит.

  3. 5

    Не знал что это называется хлебные крошки=) Фишка такая я думаю мне не нужна, но вот ссылочка на php-хаки для wp вкусная=)))

  4. 6

    Спасибо, попробую. Обычно для своих проектов я выводил их через

    wp_tag_cloud

    , а потом css прикручивал. Получается, что практическая разница только в длине ссылочного пути? Что-то еще от этого выигрываем по сравнению со стандартным вариантом?

  5. 9
    диман

    ссылка на википедию не работает

  6. 11

    Я так понимаю, для постов с несколькими рубриками эта функция будет работать некорректно? и будет ли работать вообще?

  7. 15

    2 недели назад ломал голву над тем, как сделать это без плагина, в итоге сдался и поставил плагин)

  8. 16

    Я и сам собирался тока плагин качать, а теперь можно и без него обойтись! Пасибо

  9. 17
    Женек

    Интересно, взял пост на заметку. У меня вопрос: стоит ли категории и подкатегории заключать в noindex? Не будут ли эти страницы считаться дублированным контентом?

  10. 18
    DW03

    Я на своем блоге тоже написал подобную статью. Делал перевод одного зарубежного ресурса. Там для хлебных крошек используется такой код:

    function breadcrumbs() {
    $theFullUrl = $_SERVER["REQUEST_URI"];
    $urlArray=explode("/",$theFullUrl);
    echo ‘You Are Here: <a href="/">Home</a>’;
    while (list($j,$text) = each($urlArray)) {
    $dir=";
    if ($j > 1) {
    $i=1;
    while ($i < $j) {
    $dir .= ‘/’ . $urlArray[$i];
    $text = $urlArray[$i];
    $i++;
    }
    if($j < count($urlArray)-1) echo ‘ » <a href="’.$dir.‘">’.
    str_replace("-", " ", $text) . ‘</a>’;
    }
    }
    echo wp_title();
    }
    breadcrumbs();
    ?>

    Однако у меня не вышло. Буду пробовать Ваш метод ))

  11. 19
    Antonin

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

  12. 20
    Анна Светикова @ Израиль

    Обидно, что подходит только для WordPress версии 2.5 и выше. Меня и старая версия устраивала, но от хлебных крошек я бы не отказалась. Наверное, придется устанавливать новую версию, но я к своей старушке уже так привыкла…

  13. 21
    Grehhov

    Спасибо. Очень интересная информация

  14. 22
    ikos

    Полезно, но

    Отображается полная цепочка ссылок до текущей страницы.

    на самом деле отображается не цепочка ссылок( как я добрался до статьи), а ссылки на «развернутые» рубрики где находиться статья, ИМХО это не одно и тоже

    • 23
      OnArs

      А если представить что я до статьи добирался «через тернии»? Нужно ли вообще видеть всю цепочку ссылок? Правильным считаю отображать

      ссылки на “развернутые” рубрики где находиться статья

  15. 24
    Dimart

    Супер! Очень полезная и необходимая вещь.

  16. 25

    Спасибо большое за этот пост. Давным давно искал способ реализовать описанную функцию, но не мог сформулировать ее четко, поэтому ничего путнего не находил. Временами забывал о ней, потом снова вспоминал и опять ничего не находил. А тут вот в ридере как чудесный подарок ваша статейка. Ок. Будем устанавливать. Благодарствую.

  17. 27
    alexpts

    Сколько запросов к БД делает плагин?

  18. 29

    сорри за оффтоп: я думаю, почему ты не пишешь ничего, а у тебя оказывается RSS нерабочий через фидбёрнер http://feeds.feedburner.com/SupraBlog.

  19. 31
    alexpts

    Полезная вещь действительно очень. Может быть в виде плагина оформите?

  20. 34

    Смысл в том, что делать ничего не надо будет) Просто установил плагин и все. А в коде я не разбираюсь, поэтому сделать не смогу. А плагин установить — легко.

  1. 1
    DH

    Для таксономий добавьте:

    } elseif ( is_tax() ) {
     if ($show_home_link &amp;&amp; $show_current) echo $sep;
     $term = get_queried_object();
     if ( $term ) {
     $tax = get_taxonomy( $term->taxonomy );
     $title = single_term_title( $tax->labels->name. ': ', false );
     echo $title;
     }
    

    где-нибудь перед

    } elseif ( is_day() ) {
  2. 2

    Замените эти строки:

    if ( get_query_var('cpage') ) {
    	echo $sep . sprintf($link, get_permalink(), get_the_title()) . $sep . $before . sprintf($text['cpage'], get_query_var('cpage')) . $after;
    } else {
    	if ($show_current) echo $before . get_the_title() . $after;
    }
    

    на такие:

    $title = get_the_title();
    $title_custom = get_post_meta(get_the_ID(), 'title', true);
    if ($title_custom) $title = $title_custom;
    if ( get_query_var('cpage') ) {
    	echo $sep . sprintf($link, get_permalink(), $title) . $sep . $before . sprintf($text['cpage'], get_query_var('cpage')) . $after;
    } else {
    	if ($show_current) echo $before . $title . $after;
    }
    

    Заголовок указывается через произвольное поле с именем «title».

Ваш комментарий