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

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

Давайте начнем

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

Откройте файл functions.php Вашей темы для редактирования, если его нет то нужно обязательно создать, так или иначе он Вам по-любому пригодится для проведения разнообразных трюков и хаков.

Вставьте в самом конце файла functions.php следующий фрагмент кода:

<?php
	function htm_the_breadcrumb() {
	echo '<ul id="crumbs">';
	if (!is_home()) {
	echo '<li><a href="';
	echo get_option('home');
	echo '">';
	echo 'Home';
	echo "</a></li>";
	if (is_category() || is_single()) {
	echo '<li>';
	the_category(' </li><li> ');
	if (is_single()) {
	echo "</li><li>";
	the_title();
	echo '</li>';
	}
	} elseif (is_page()) {
	echo '<li>';
	echo the_title();
	echo '</li>';
	}
	}
	elseif (is_tag()) {single_tag_title();}
	elseif (is_day()) {echo"<li>Archive for "; the_time('F jS, Y'); echo'</li>';}
	elseif (is_month()) {echo"<li>Archive for "; the_time('F, Y'); echo'</li>';}
	elseif (is_year()) {echo"<li>Archive for "; the_time('Y'); echo'</li>';}
	elseif (is_author()) {echo"<li>Author Archive"; echo'</li>';}
	elseif (isset($_GET['paged']) && !empty($_GET['paged'])) {echo "<li>Blog Archives"; echo'</li>';}
	elseif (is_search()) {echo"<li>Search Results"; echo'</li>';}
	echo '</ul>';
	}
?>

Приведенный код довольно прост, объясню: для начала мы определяем, что пользователь находится не на главной странице и выводим для него ссылки на главную, на рубрику, и на саму статью (если пользователь находится в рубрике, то отображается только название рубрики); если же пользователь находится на странице – то видит ссылки на главную и на страницу.

Функция готова, теперь нужно добавить ее вызов в файлы шаблонов Вашей темы, чтобы она появилась на сайте. Я обычно использую функцию хлебных крошек в файлах: single.php, archive.php, category.php, page.php для того чтобы мы увидели их на сайте открываем эти файлы и в нужном месте вставляем код вызова функции:

<?php htm_the_breadcrumb(); ?>

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

Напоследок замечу, что если все-таки Вы не хотите заморачиваться с написанием кода (хотя тут только копи/паст), то есть и плагины для решения такой же задачи это Breadcrumb NavXT и Yoast Breadcrumb.

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


Комментарии
  1. Оксана

    Подскажите, а где это в нужном месте вставлять код функции вызова?

  2. JAH

    Например в файле header.php, или sidebar.php или в footer.php или перед началом цикла wp

  3. Ксения

    Привет! Действительно красивый код 😉
    Подскажи пожалуйста, как его проапгрейдить: есть пользовательские таксономии и пользовательские типы записей (2 штуки).
    И как выкрутиться, если пользователь идет с главной на page, оттуда — на дочернюю page, а с дочерней — на custom type?

  4. JAH

    Ксения, надо подумать, что-то придумаю напишу на почту Вам)

  5. Ксения

    Спасибо!

  6. Urianarro

    Привет!извините просто незнал где написать. Подскажите пожалуйста, как сделать такой вид комментариев как у Вас в блоге!?

  7. JAH

    Urianarro, вот тут писал как сделать вывод комментов без плагина только нужно по своему оформить

  8. Светлана

    Владимир, а если у меня закодированы эти файлы (возможно, я неверно выражаюсь), и при попытке что-то вставить в них либо вообще не происходит изменений, либо сайт не работает? Файлы все выглядят так:
    */
    wp_enqueue_script( ‘comment-reply’ );

    // load header.php
    get_header();

    // load one of layout pages (layouts/*.php) based on settings
    get_constructor_layout(‘page’);

    // load footer.php
    get_footer();

    Но есть файлы (layouts/page.php) и (layouts/single.php), они более содержательные, но тоже никаких изменений (хотя особо не экспериментировала — не знаю, что они и для чего). Или все же работать нужно именно в них?

  9. Андрей

    А если пост у меня в 10 разных(не связанных дочероностью) категориях пост, так и будет 10 штук выводиться?))

  10. JAH

    Андрей, по идее да, сечас я юзаю в основном WordPress Seo там побольше сеошных настроек и всякие примочки типа микроразметки и open graph meta теги

  11. Андрей

    Я обычно использую функцию Камы, у него тоже по-моему разметка есть

  12. Елена

    Этот вывод неудобен тем, что идет списком. К сожалению, убрала.