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-json/oembed/ в WP

Август 11, 2018 г.

Разработчиков WP не очень заботит SEO, и обновления движка могут оказывать негативные эффекты на индексацию сайта, т.к. могут появляться новые технические страницы, дубли и т.п. В версии 4.4 разработчики добавили RESTful интерфейс, который создаёт дополнительные ...

Читать

Обновления plugina References, v1.1

Апрель 9, 2018 г.

Времени придумывать что то самому последние полгода вообще нет, потому дорабатываю свои плагины по заявкам пользователей :). References в плане ...

Читать

Главная страница в wordpress

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

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

Читать

Настройка ЧПУ в CMS

Август 3, 2015 г.

Как я напишу позднее, ЧПУ - один из факторов учитываемых в SEO. А пока как программист подскажу специалистам в SEO, где искать настройки ЧПУ в популярных CMS. Начну с рассказа о двух хорошо мне знакомых CMS, потом буду по мере возможности дополнять ...

Читать
 

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

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



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