Genzel Breadcrumbs плагин для WP

Так как все время по работе возникает необходимость добавления в шаблоны хлебных крошек, то решил не лениться и оформить код в виде более универсального плагина.

Занимался им в эти выходные. WordPress.org как то очень оперативно отреагировали на заявку о предоставлении репозитория — проверили плагин в течении дня и выделили мне место под плагин.

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

Главная страница — текущий путь в меню.

В WP есть ещё частности вроде страниц вложений и архивных разделов.

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

Все товары в этом случае удобно программно «смонтировать» в раздел сайта  (к примеру) «каталог товаров», чтобы крошки выглядели так:

Главная — каталог товаров — товар.

Если товаров действительно много, то желательно чтобы между «каталогом» и «товаром» фигурировали какие то под-рубрики каталога.

Genzel Breadcrumbs

Эти и многие другие соображения я реализовал в плагине под странным названием «Genzel Breadcrumbs». Genzel — это отсылка к сказке братьев Гримм «Гензель и Гретель», где также фигурируют хлебные крошки. :)

Хотя для вставки плагина требуется добавить PHP код с вызовом функции в шаблон, но большая часть настроек вынесена в админку. Эти настройки используются по умолчанию при вызове ф-ции GenzelBreadcrumbs();, которая выводит хлебные крошки текущей страницы. Там же есть документация и примеры использования.

Помимо всем понятных настроек шаблонов, есть такой параметр как RULE.

Привила составления хлебных крошек

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

Токены

front — вставляет ссылку на главную страницу. Метка и URL можно быть задана в настройках.

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

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

menu:trail — если текущий раздел отсутствует в меню, то front menu построит цепочку содержащую только ссылку на главную страницу. Вот такой вариант будет более верен:

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

tax — токен добавляет ссылки на архивы таксономии. По умолчанию (без модификатора) используется словарь — post_tag.

tax:TAXONOMY_NAME — чтобы указать имя словаря (таксономии) используйте модификатор.

current — текущая страница. Для этой ссылки используется отдельный шаблон, т.к. обычно она не оформляется как ссылка. Для некоторых ситуаций данный токен может выдать не одну, а несколько ссылок. Например, для архива за день, будет добавлена цепочка — архив за год, архив за месяц и архив за день.

| — вертикальная черта у программистов ассоциируется с битовой операцией «или». Данные токен (его нужно также отделять пробелами) позволяет применить только один токен из цепочки разделенной вертикальной чертой.

token1 | token2 | token3

Если токен не дал вклада в путь, то активируется следующий токен. Иначе другие токены в цепочке «или» пропускаются.

Это позволяет создать некое подобие логики :).

Монтирование

Возвращаясь к примеру с товарами и каталогом, расскажу о ещё одной возможности Genzel Breadcrumbs. Это монтирование публикации по типу (и/или) термину в определенные точки дерева сайта.

Из админки монтирование в версии 1.0 управлять нельзя. Я думаю доработать это в будущих версиях плагина.

Монтирование выполняется заданием специального параметра при вызове функции GenzelBreadcrumbs.

Точек монтирования может быть много, и каждая из них имеет три параметра. Дословно — where куда монтировать, what что и how как.

В данном примере я привел настройку бредкрамба для публикации типа «product», которые подключаются в раздел сайта ‘/shop/’. Это типично при использовании woocommerce.

Хлебные крошки в этом случае строятся следующим образом — сначала строится бредкамб для точки монтирования (раздела ‘/shop/’), а потом к нему добавляется путь публикации типа product, построенные по правилу, заданному параметром how. В данном примере кроме названия товара будет добавлена ссылка(-и) на категорию товара.

Условия в what могут быть двух видов — это тип материала и термин. Термин задаётся вот таким шаблоном — term:TAXONOMY_NAME:TERM_SLUG.  Например:

У монтирования пока есть определенные ограничения. Подключить крошки можно только в публикацию. Смонтировать в архив или какой либо виртуальный раздел сайта не получится.

Написать комментарий

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

Перенос сайта на wordpress

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

Перенос сайта на другой движок - это уникальная задача, которую нельзя сделать по шаблону. Надо заметить, что перенос сайта на другой движок возникает ...

Читать

Вывод анонсов статей с картинкой, в Wordpress

Август 5, 2013 г.

Сформулируем задачу. Нужно вывести 3 (а в общем случае N) анонсов новостей, с картинкой, в шаблоне на главной странице сайта. Этот кусочек должен выглядеть ...

Читать

 

Комментарии к «Genzel Breadcrumbs плагин для WP»

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



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