Работа с произвольными таксономиями

wordpress-taxonomy-logo

WordPress позволяет разработчикам создавать произвольные таксономии. Произвольные таксономии полезны, когда кто-то хочет создать различные системы именования и сделать их доступными предсказуемым образом. Как системы классификации «Категории» и «Метки» не очень структурированы, поэтому для разработчиков может принести пользу создание своих собственных систем.

Зачем использовать произвольные таксономии?

Вы можете спросить, «Зачем создавать таксономию, когда я могу организовать контент по категориям и тегам?»

Ну … давайте рассмотрим пример. Предположим, у нас есть клиентка, которая является поваром и хочет, чтобы вы создали блог-сайт, где она будет размещать оригинальные рецепты. Один из способов организовать сайт может быть создание произвольного типа записи под названием «Рецепты» для хранения ее записей рецептов, и таксономии для «Блюда» чтобы отделить закуски от десертов, и «Ингредиенты» чтобы отделить курицу от шоколадных блюд.

Эти группы могут быть определены с помощью категорий или меток, так как они могут быть определены иерархически: вы могли бы просто иметь Категорию «Блюда» с подкатегориями для закусок и десертов, и Категорию «Ингредиенты» с подкатегорими для каждого ингредиента.

Преимущество использования произвольных таксономий, что вы можете ссылаться на «Блюда» и «Ингредиенты» независимо от категории и тегов. Они даже получат свои места в административном меню.

Предположим, разработчик создает этот блог-сайт рецептов для повара, который не является технически подкованным. В этом случае, разработчику может потребоваться создать пользовательские интерфейсы для редактирования или выбора блюд и ингредиентов. Использование произвольных таксономий является одним из способов приблизиться к этому.

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

Простой пример: Таксономия Блюда (Courses)

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

Шаг 1: Перед началом работы…

Перед началом, перейдите в раздел «Добавить новую запись» и обратите внимание, что есть только мета-боксы таксономии для категорий и тегов.

working-with-custom-taxonomies

Шаг 2. Создайте новый плагин

Создайте новый плагин под названием Courses Taxonomy, следуя инструкциям в Основы плагина разделе данного руководства.

Шаг 3. Регистрация Таксономии и добавления действия (экшена)

Добавьте следующий PHP код в файл плагина:

Шаг 4. Обзор Результата

Активируйте плагин, затем зайдите в «добавить новую запись». Вы должны увидеть, что новое мета окно для таксономии было автоматически добавлено.

working-with-custom-taxonomies-2

 

 

Анализ кода

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

Экшен хук

Запускает вашу функцию для создания таксономии в нужное время загрузки WordPress.

Открытие Функции

Это просто открывает функцию, которая начинает работать на init-хуке. Внутри этой функции мы собираемся сделать таксономии.

Ярлыки для блюд

Этот массив просто предоставляет ярлыки для различных элементов в интерфейсе админки. Код ничего не делает пока, просто объявляет их.

Аргументы

Это массив, который структурно говорит WordPress, как таксономия должна работать.

hierarchical означает, что имеется интерфейс, как у категорий, а не одиночный, как у тегов.

В labels просто попадает ранее созданный массив ярлыков.

show_ui просто позволяет вам выбрать, следует ли показывать пользовательский интерфейс.

show_admin_column позволяет решить, следует ли вам видеть, как используется эта таксономия, когда просматривается листинг записей в админке.

query_var обеспечивает переменную в запросе для этой таксономии, так что вы можете использовать ее в URL, или непосредственно в WP_Query. Если эта опция выключена, то вы должны были бы получить доступ к таксономии с использованием запроса, подобно этому: WP_Query(array(‘taxonomy’=>’people’, ‘term’=>$person_name))

rewrite позволяет объявлять, какой ярлык (slug) будет иметь эта таксономия.

register_taxonomy функция

Эта функция, которая фактически использует массивы выше. Сначала объявляет имя таксономии как ‘course’, затем присваивает ее к типу контента «запись» и передает массив аргументов $args.

Использование вашей таксономии

Используя пример выше для Courses taxonomy, WordPress автоматически создаст страницу архива на /course/, и другие для каждого термина.

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

Вот некоторые примеры:

  • the_terms: принимает аргумент таксономии и показывает термины в списке.
  • wp_tag_cloud: принимает аргумент таксономии и показывает облако тегов терминов.
  • is_taxonomy: позволяет определить, существует ли данная таксономия.
Навигация по разделам:

2 комментария

  1. Ангелиночка!

    Но вот не понял, как добавить в пользовательскую таксономию возможность добавления картинки?

    Ответить
    • Eugene Kopich

      Возможно лучше использовать дополнительные поля в таком случае. Например, с помощью плагина Advanced Custom Fields и назначить это поле конкретной таксономии

      Ответить

Оставить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *