Создание системы хлебных крошек в WordPress

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

В статье я покажу пару «собственных» подходов к генерации крошек, и это может стать основной для вашего решения.

У меня на сайте преимущественно два типа материалов — это посты в ленте (post) и страницы (page). Эти сущности хоть логически разделены, но хранятся в одной и тоже таблице базы данных. Т.е. деление весьма условное.

Тем не менее страницы не показываются в ленте. И они преимущественно используются в меню. Потому breadcrumbs для post и page имеют разную логику и по разному должны генерироваться.

Но у них есть общее правило, связанное с первым и последним элементами. 1-й элемент — это ссылка на главную страницу, а последний — не является даже ссылкой — это просто название самой страницы.

Breadcrumb для постов

Посты (post) у меня объединяются в категории, и у них могут быть теги. Основную категорию и один из тегов я добавляю в бредкрамб. Вообще, это против правил — т.к. бредкрамб должен отображать иерархию элементов, а не их горизонтальные связи. Но мой сайт — мои правила.

Breadcrumb для страниц

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

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

Реализация

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

Класс BreadcrumbItem — элемент крошки

Это простой DTO (Data Transfer Object) для хранения информации об одном элементе хлебных крошек:

Класс Breadcrumb — генерация и рендеринг

Всего три статические функции — две наполняют массив крошек, и одна производит рендер из этого массива. Рассмотрим их по очереди.

Для постов:

Для страниц из меню:

Рендеринг HTML:

Использование в шаблонах

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

Для страниц:


Такая система хлебных крошек отлично подходит для большинства сайтов на WordPress. Главное преимущество — использование реальной структуры меню для страниц, что делает навигацию интуитивно понятной для пользователей.

Вы можете адаптировать этот код или дополнить его своими кейсами. Каждый сайт уникален, и сложно бывает найти готовое решение, работающее как надо из коробки. Важен, конечно, баланс — что то пишете сами, а что то используете готовое.

Мало букафф? Читайте есчо !

Добавление и обработка кастомных полей в заказе woocommerce

Сентябрь 10, 2019 г.

Плагин woocommerce - интернет-магазин для WP - и так показывает огромное число полей на форме оформления заказа (т.н. checkout), и обычно требуется убрать/спрятать ...

Читать

Powered by wordpress plugin, или нет надо мной твоей власти, Завулон

Сентябрь 30, 2015 г.

Люди далекие от программирования, но пожелавшие заиметь свой блог не каком то livejournal или instagram, а так, чтобы он был совсем свой, "типа как сайт", ...

Читать

Wordpress XMLRPC DOS атака

Апрель 23, 2016 г.

Хакеры ищут разные пути взлома ваших сайтов. В большистве случаев, если только сайт не представляет какой то коммерческой ценности, это резвятся детишки, ...

Читать

Footer wordpress

Октябрь 9, 2015 г.

Что такое footer wordpress и как его отредактировать. Шаблон страницы в wordpress собирается, как правило, из нескольких файлов-шаблонов. Хотя это и не обязательно. Сначала wordpress определяет файл основного шаблона, который выбирается в соответствии ...

Читать
 

Комментарии к «Создание системы хлебных крошек в WordPress»

Понравилась статья? Есть вопросы? - пишите в комментариях.



Комментарий: