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.  Например:

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

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

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

Как в WP получить путь к каталогу темы

Апрель 14, 2023 г.

Wordpress реализует целое семейство параметров, которые можно использовать в шаблоне. В том числе и переменные, указывающие путь к файлам темы. Разбираемся в нюансах. Ключевых переменных тут две: [crayon-65f90b69dc3bd991819783/] В чем их ...

Читать

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

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

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

Читать

 

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

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



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