Таблица wp_term_taxonomy
Таблица wp_term_taxonomy является центральной таблицей в системе таксономий WordPress. Она определяет, к какой таксономии (категория, метка, пользовательская таксономия) принадлежит каждый термин из таблицы wp_terms, а также хранит дополнительную информацию об этой связи, такую как описание, количество записей и родительский термин.
Поля
| Поле | Тип данных | Описание |
|---|---|---|
term_taxonomy_id |
bigint unsigned |
Уникальный идентификатор записи в этой таблице (первичный ключ, автоинкремент). |
term_id |
bigint unsigned |
ID термина из таблицы wp_terms. Внешний ключ, связывающий таксономию с конкретным термином.
|
taxonomy |
varchar(32) |
Название таксономии. Стандартные значения: category (рубрики), post_tag (метки). Также здесь хранятся названия всех пользовательских таксономий.
|
description |
longtext |
Текстовое описание термина в рамках данной таксономии. Например, описание рубрики, которое можно задать при ее редактировании. |
parent |
bigint unsigned |
ID родительского термина из этой же таксономии. Позволяет создавать иерархические структуры (например, подрубрики внутри рубрик). Для терминов верхнего уровня равен 0.
|
count |
bigint |
Количество записей (постов, страниц и т.д.), связанных с данным термином в рамках этой таксономии. Это значение автоматически обновляется WordPress при публикации, обновлении или удалении записей. |
Как это работает
Система таксономий WordPress состоит из трех основных таблиц:
wp_terms: хранит сами термины (их названия и slugs).wp_term_taxonomy: определяет, к какой таксономии принадлежит термин и хранит мета-данные (текущая таблица).wp_term_relationships: связывает термины с объектами (записями, страницами).
Один и тот же термин из wp_terms может принадлежать разным таксономиям. Например, термин "Новости" может быть как рубрикой (category), так и меткой (post_tag). Для каждого такого случая в wp_term_taxonomy создается отдельная запись с одним и тем же term_id, но разным значением в поле taxonomy.
Поле count является производным и обновляется ядром WordPress. Прямое изменение этого значения в базе данных может привести к некорректной работе счетчиков. Для сброса счетчиков следует использовать функцию wp_update_term_count_now() или плагины для пересчета таксономий.
Пример SQL-запроса
Выбрать все рубрики (категории) с их описанием и количеством записей, отсортированные по популярности:
SELECT t.name, t.slug, tt.description, tt.count
FROM wp_terms t
INNER JOIN wp_term_taxonomy tt ON (t.term_id = tt.term_id)
WHERE tt.taxonomy = 'category'
ORDER BY tt.count DESC;
Найти все дочерние термины (подрубрики) для родительской рубрики с ID равным 5:
SELECT t.name, tt.term_taxonomy_id
FROM wp_terms t
INNER JOIN wp_term_taxonomy tt ON (t.term_id = tt.term_id)
WHERE tt.taxonomy = 'category' AND tt.parent = 5;
Смотрите также
-
таблицу
wp_terms,
которая хранит названия и slugs терминов -
таблицу
wp_term_relationships,
которая связывает термины с записями и другими объектами -
таблицу
wp_termmeta,
которая позволяет хранить произвольные мета-данки для терминов -
таблицу
wp_posts,
которая хранит записи, связанные с терминами