Что такое Таксономии и Термины в WordPress?

УрокиКомментариев нет

Таксономии – это то, что переносит WordPress за пределы простой блог-платформы в реальности CMS.

Но как они хранятся в базе данных?

Таксономии и Термины – мощный инструмент WordPress, который позволяет добавлять больше гибкости вашим сайтам. Они относятся к двум другим типам контента: посты и ссылки. Структура базы данных означает, что это связь один ко многим, где один пост может иметь несколько терминов по нескольким таксономиям, и один термин может быть присвоен нескольким постам или ссылкам.

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

Характеристики

Таксономии

Таксономия – это система классифицированных или разложенных по категориям вещей, как правило, иерархически. Самая известная таксономия – Таксономия Линнея, используемая для классификации живых существ.

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

WordPress имеет три встроенные таксономии:

  • Рубрика
  • Метка
  • Ссылка рубрики

Рубрики и метки немного похожи на посты и страницы тем, что они одного типа контента (таксономии), но по умолчанию ведут себя по-разному, а именно: рубрики — иерархичны, а метки – нет.

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

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

Термины

У каждой таксономии будут термины, которые вы сможете использовать для сортировки данных. Рубрика – это всего лишь термин в таксономии рубрик, и метка – это термин в рубрике меток. После того как вы создадите таксономии, вы создадите термины для них либо с использованием консоли WordPress, либо с помощью функции wp_insert_term ().

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

Как WordPress хранит Таксономии и Термины

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

  • wp_term_relationships
  • wp_term_taxonomy
  • wp_terms

эти таблицы приведены ниже, наряду с таблицами показаны их связи к wp_posts и wp_links.

working-with-data-in-wordpress-terms-table-and-related-tables

Давайте посмотрим на каждую из таблиц и узнаем, как они работают.

Таблица wp_terms

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

  • term_id – это уникальный ID для термина
  • name (имя)
  • slug (ярлык)
  • term_group – это поле, которое в настоящий момент не используется WordPress, поэтому вы можете спокойно пропустить его.

Таблица wp_term_taxonomy

Таблица wp_term_taxonomy хранит больше данных о терминах, а также о таксономиях, частью которых они являются. У нее шесть полей:

  • term_taxonomy_id – хранит ID, относящийся к записи в этой таблице
  • term_id отображает ID термина, связанный с его записью в таблице wp_terms
  • taxonomy – название таксономии, внутри которой находится термин
  • description (описание)
  • parent – ссылается на родительский термин для данного термина, если таксономия является иерархической, и он может быть только один.
  • сount – количество постов с термином.

Во многих установках WordPress будет одна запись в таблице wp_term_taxonomy для каждого термина в таблице wp_terms, но в некоторых случаях может быть более одной записи для каждого термина. Это происходит в том случае, когда вы создаете два термина с одинаковыми именами и ярлыками в разных таксономиях. Это означает, что вы можете создать запрос для вывода постов с этим термином в нескольких таксономиях.

Это означает, что связь между этими двумя таблицами «один-ко-многим»: одна запись в таблице wp_terms может быть связана с несколькими записями в таблице wp_term_taxonomy, но каждая запись в таблице wp_term_taxonomy связана только с одной записью в wp_terms.

Таблица wp_term_relationships

Таблица wp_term_relationships является ключевой в создании связи «многие-ко-многим» между объектами и терминами. У нее всего лишь три поля:

  • object_id (связан с post_id в таблице wp_post или с link_id в таблице wp_links)
  • term_taxonomy_id (связан с аналогичным полем в таблице wp_term_taxonomy)
  • term_order (это порядок, в котором термины были добавлены к объекту. Он используется только в том случае, если вы задали такой тип инструмента, который будет истинным, когда вы зарегистрировали таксономию – по умолчанию имеет значение «Ложь» и значение по умолчанию для этого поля 0.

Поскольку каждый объект может быть связан с несколькими записями в таблице wp_term_relationships, таким же образом может быть связан и термин, это создает связь «многие-ко-многим».

Итог

Связи между объектами (т.е. постами и ссылками) и терминами являются мощным инструментом отчасти потому, что эта единственная связь «многие-ко-многим», которая используется в WordPress.

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

 

Источник: code.tutsplus.com


Будь первым кто прокомментирует статью.

Добавить комментарий

Войти с помощью: