Ars Longa, Vita Brevis

Сен 21, 2008

Таксономия в WordPress

Рубрика: WordPress
Метки: , ,
Vladimir @ 7:10 дп
RSS 2.0

Древообразная структура классификаций определенного набора объектов

Таксономия (taxonomy) — одно из понятий, появившихся еще во времена WordPress 2.3, но до сих пор вызывающее ужас из-за внутренней реализации.

Вообще говоря, таксономией (с математической точки зрения) называется древообразная структура классификаций определенного набора объектов. По умолчанию WordPress пердоставляет три классификации: рубрики записей (post categories), метки записей (post tags) и рубрики ссылок (link categories).

Я не случайно употребил "по умолчанию" — потому что WordPress позволяет создавать собственные таксономии.

Таксономия в WordPress реализована тремя таблицами:

  1. Таблица термов (wp_terms);
  2. Таблица таксономии термов (wp_term_taxonomy);
  3. Таблица отношений термов, объектов и таксономий (wp_term_relationships).

Рассмотрим данные таблицы подробнее.

Таблица термов (wp_terms)
Поле Описание
term_id Уникальный идентификатор терма
name Имя терма
slug Имя терма, пригодное для использования в URL
term_group В теории используется для группирования схожих термов; на практике я этого ни разу не наблюдал

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

Таблица таксономии термов (wp_term_taxonomy)
Поле Описание
term_taxonomy_id Уникальный идентификатор таксономии терма
term_id Идентификатор терма, относящегося к данной таксономии (связь осуществляется по полю wp_terms.term_id)
taxonomy Таксономия. Как я уже говорил выше, WordPress определяет три таксономии: рубрики записей, метки записей и рубрики категорий
parent Родительский терм (а не таксономия, как полагают некоторые). Используется для поддержания иерархической связности термов внутри таксономии
count Количество объектов (записей/ссылок), связанных с данной таксономией. Забегая вперёд, отмечу, что значение данного поля не равно SELECT COUNT(`object_id`) FROM `wp_term_relationships` WHERE `term_taxonomy_id` = 'ID'. Подсчёт количества объектов специфичен для каждой таксономии. Например, в случае с рубриками записей, количество объектов — это количество опубликованных записей



Таблица отношений термов, объектов и таксономий (wp_term_relationships)
Поле Описание
object_id Идентификатор объекта (коим по умолчанию является либо запись, либо ссылка, в зависимости от значения поля taxonomy в таблице wp_term_taxonomy), относящегося к данной таксономии
term_taxonomy_id Идентификатор таксономии терма, относящейся к данному объекту (связь осуществляется по полю wp_term_taxonomy.term_taxonomy_id)
term_order Используется для сортировки

Как я уже говорил (а repetitio est mater studiorum), WordPress предоставляет три таксономии. Ниже приведены краткие характеристики каждой из них.

Характеристика таксономий в WordPress
Таксономия Объект Иерархичность
category (рубрика) Запись Да (рубрики могут быть вложенными)
post_tag (метка записи) Запись Нет
link_category (рубрика ссылок) Ссылка Нет

Рекомендую к прочтению:

  • WordPress 2.3 Taxonomy
  • Taxonomy API
  • Why Tags Are Better Than Categories?
Добавить в закладки
  • del.ici.ous
  • Digg
  • Furl
  • Google
  • Simpy
  • Spurl
  • Y! MyWeb
  • БобрДобр
  • Мистер Вонг
  • Яндекс.Закладки
  • Текст 2.0
  • News2
  • AddScoop
  • RuSpace
  • RUmarkz
  • Memori
  • Закладки Google
  • Писали
  • СМИ 2
  • Моё Место
  • Сто Закладок
  • Ваау!
  • Technorati
  • RuCity
  • LinkStore
  • NewsLand
  • Lopas
  • Закладки - I.UA
  • Connotea
  • Bibsonomy
  • Trucking Bookmarks
  • Communizm
  • UCA

Комментарии к статье "Таксономия в WordPress" (2) »

  1. [Сентябрь 23, 2008 1:09 дп] Магические условные тэги WordPress | Ars Longa, Vita Brevis:

    [...] что связано с таксономией, авторами, датой и временем (в эту группу относятся [...]

    #1
  2. [Октябрь 1, 2008 1:39 пп] Ошибка обновления счетчиков объектов таксономий при импорте WXR-файла | Ars Longa, Vita Brevis:

    [...] Технически проблема заключается в том, что WordPress не обновляет поле count таблицы таксономий термов. [...]

    #2

RSS лента комментариев к этой записи. TrackBack URL

Оставить комментарий к записи "Таксономия в WordPress"

XHTML: Вы можете использовать эти теги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Оставляя комментарий, Вы выражаете своё согласие с Правилами комментирования.

Подписаться, не комментируя