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

коротко и полезно о веб-разработке

Menu Close

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

На многих сайтах, особенно имеющих сложную многоуровневую структуру можно встретить навигацию под названием хлебные крошки (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 (хлебные крошки), без установки каких-либо дополнительных плагинов.

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

Рассказать друзьям

Понравилась статья? Лучший способ сказать спасибо - поделиться ссылкой в социальных сетях: