ВНИМАНИЕ: Запись на курсы по HTML, CSS, JavaScript, PHP, Python, React, Vue, Laravel и другим фреймворкам и CMS,
а также: помощь в поиске работы и заказов, стажировка на реальных проектах→
6 of 21 menu
Вступайте в телеграмм-канал сайта code.mu: новинки, статьи, интервью, задачи, бесплатные курсы и тренинги. Жми для вступления:)

Таблица 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,
    которая хранит записи, связанные с терминами