На многих сайтах, особенно имеющих сложную многоуровневую структуру можно встретить навигацию под названием хлебные крошки (breadcrumb). Она представляет собой цепочку ссылок от главной страницы до той, на который вы находитесь в данный момент.
И вот создавая очередной шаблон для WordPress, передо мной встала задача создания такой навигации в шаблоне.
К сожалению в рунете ничего подходящего не нашлось, в основном все ссылки вели на установку дополнительного плагина, а я придерживаюсь того мнения, что если можно воспользоваться стандартными функциями WP, плагин ставить не обязательно. К тому же заказчику нужно сдать готовую тему, без оговорок на то, что для ее работы нужен специальный плагин.
В общем решение нашлось довольно быстро в англоязычном блоге, за что ему большое спасибо.
Я не буду переводить статью дословно, сразу переду к сути. Автор статьи, написал скрипт, создающий довольно простую навигацию хлебных крошек:
[php]
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> » ";
}
if ( is_category() || is_single() ) {
$category = get_the_category();
$ID = $category[0]->cat_ID;
echo get_category_parents($ID, TRUE, ‘ » ‘, 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>";
}
[/php]
Автор использует условные теги WP, для проверки какую рубрику, запись или страницу мы просматриваем в данный момент. Скрипт не выводит навигацию, если мы находимся на главной странице.
[php]
if ( is_category() || is_single() ) {
$category = get_the_category();
$ID = $category[0]->cat_ID;
echo get_category_parents($ID, TRUE, ‘ » ‘, FALSE );
}
[/php]
Это самая сложная часть скрипта, поскольку здесь применяются редко используемые функции WordPress, для получения всех родительских рубрик текущей рубрики или поста.
[php]
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’); }
[/php]
Здесь все довольно просто, используются условные комментарии для указания различных сценариев скрипта, таких как переход по метке, комментарию, архиву за месяц, 404 страница и др.
Этот скрипт достаточно доавить в файл functions.php, и после этого вы можете вызвать функцию навигации, в шаблоне всего лишь одной строчкой:
[php]
<?php my_breadcrumb(); ?>
[/php]
В результате мы получили очень легкую версию скрипта навигации breadcrumb (хлебные крошки), без установки каких-либо дополнительных плагинов.
Leave a Reply