Интересные статьи

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

Readmore

15 регулярных выражений PHP в помощь... Регулярные выражения – это очень полезный инструмент для разработчиков. С их помощью можно находить,...

Readmore

Создание формы со скользящими... Пару недель назад, я читал статью Люка Вроблевски. Для тех, кто еще не слышал о нем, Люк -  автор...

Readmore

Анимация jQuery: изучение за 7 шагов Небольшой штрих анимации может украсить любой, скучный интерфейс. В сегодняшней статье, вы узнаете,...

Readmore

Фантастическая CSS3 лайтбокс... С удовольствием принимаю эстафету по обзору полезных зарубежных ресурсов, предложенную блоггером...

Readmore

Очередной блог фрилансера Rss

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

Дата публикации : 14-01-2009 | в рубрике : wordpress

Метки: , ,

11

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

breadcrumb

И вот создавая очередной шаблон для WordPress, передо мной встала задача создания такой навигации в шаблоне.

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

В общем решение нашлось довольно быстро в англоязычном блоге, за что ему большое спасибо.

Я не буду переводить статью дословно, сразу переду к сути. Автор статьи, написал скрипт, создающий довольно простую навигацию хлебных крошек:

function my_breadcrumb() {
       if ( !is_front_page() ) {
	  echo '<p class="breadcrumb"><span class="breadcrumb_info">You are here:</span> <a href="';
	  echo get_option('home');
	  echo '">';
	  bloginfo('name');
	  echo "</a> &raquo; ";
	}

	if ( is_category() || is_single() ) {
	  $category = get_the_category();
	  $ID = $category[0]->cat_ID;
	  echo get_category_parents($ID, TRUE, ' &raquo; ', FALSE );
	}

	if(is_single() || is_page()) {the_title();}
	if(is_tag()){ echo "Tag: ".single_tag_title('',FALSE); }
	if(is_404()){ echo "404 - Page not Found"; }
	if(is_search()){ echo "Search"; }
	if(is_year()){ echo get_the_time('Y'); }			

	echo "</p>";

        }

Автор использует условные теги WP, для проверки какую рубрику, запись или страницу мы просматриваем в данный момент. Скрипт не выводит навигацию, если мы находимся на главной странице.

if ( is_category() || is_single() ) {
	        $category = get_the_category();
		$ID = $category[0]->cat_ID;
		echo get_category_parents($ID, TRUE, ' &raquo; ', FALSE );
		}

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

if(is_single() || is_page()) {the_title();}
if(is_tag()){ echo "Tag: ".single_tag_title('',FALSE); }
if(is_404()){ echo "404 - Page not Found"; }
if(is_search()){ echo "Search"; }
if(is_year()){ echo get_the_time('Y'); }

Здесь все довольно просто, используются условные комментарии для указания различных сценариев скрипта, таких как переход по метке, комментарию, архиву за месяц, 404 страница и др.

Этот скрипт достаточно доавить в файл functions.php, и после этого вы можете вызвать функцию навигации, в шаблоне всего лишь одной строчкой:

<?php my_breadcrumb(); ?>

В результате мы получили очень легкую версию скрипта навигации breadcrumb (хлебные крошки), без установки каких-либо дополнительных плагинов.

Оригинал статьи

Похожие записи

Комментарии: (11)

Здорово! Спасибо большое за статью, вставил у себя в блог этот скрипт. Результат можно посмотреть в любом посте в моем блоге. :)

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

В первом абзаце вместо:
bloginfo('name');

можно написать:
echo "Любой текст";

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

в первой строчке последнего абзаца:

if(is_single() || is_page()) {the_title();}

внутри скобок the_title(), добавтье в кавычках через запятую открывающий и закрывающий тэг:
пример

неплохо, но с включёнными пермалинками не работают архивы)(type=»monthly»)

может быть, автор скрипта говорил о том что это очень простая реализация хлебных крошек

dreamhelg, спасибо, все работает! Теперь посмотрим, будет ли эффект в плане повышения Pr

почаще пишите интересные статьи, и будет хороший Pr, а хлебные крошки это небольшое дополнение

Код можно сразу в сайдбар воткнуть без всяких функций и инклюдов, а вот в индексе он у меня чего-то не заработал, инклюдом тоже не прокатило… :( Убрал пока…
Еще не получилось заменить почему-то цепочку ешо одной командой… как сделать?

echo get_option(‘home’); echo ‘»>’; bloginfo(‘name’); echo « » «;

Понятное дело что можно без функций, просто так аккуратнее, да и автор скрипта так написал. По поводу замены цепочки echo, вроде бы можно просто написать через точку, примерно так:

echo get_option(’home’).">".bloginfo(’name’).">" Вроде бы должно работать, но не проверяла, не знаю.

Плагин для комментов обязательно сегодня поставлю.

блин, извиняюсь, забыл дописать.

Поставьте, пожалуйчта, плагин «подписаться на комменты», а то постоянно заходить проверять не удобно… Чего никто не ставит ???

Оставьте комментарий