Codex

Interested in functions, hooks, classes, or methods? Check out the new WordPress Code Reference!

Описание структуры базы данных

Ниже приводится схема и описание таблиц базы данных, созданных во время стандартной установки WordPress. Структура базы данных и диаграмма ниже были в последний раз обновлены в версии 4.4.

WordPress поддерживает только MySQL версии 5.0.15 или выше, или любую версию MariaDB.

См. также предыдущие версии Описания Структуры Базы Данных для WordPress 1.5, WordPress 2.0, WordPress 2.2, WordPress 2.3, WordPress 2.5, WordPress 2.7, WordPress 2.8, WordPress 2.9 и WordPress 3.3.

Поскольку WordPress взаимодействует с этой базой данных сам, вам, как конечному пользователю, не нужно сильно беспокоиться о ее структуре. Однако, если вы пишете плагин, вам может быть интересно узнать, как WordPress хранит свои данные. Если вы уже пытались использовать существующий WordPress API для доступа к нужным вам данным, но решили, что это невозможно без прямого доступа к базе данных, WordPress предоставляет класс wpdb, чтобы упростить эту задачу.

Схема база данных

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


(Схема базы данных WP 4.4.2)


Пожалуйста, обратите внимание, что при стандартной установке WordPress, целостность данных между таблицами не обеспечивается, например между постами и комментариями. Если вы создаете плагин или расширение, которое манипулирует базой данных WordPress, ваш код должен выполнять служебную работу, чтобы в таблицах не оставалось бесхозных записей, например, удаляя записи в других таблицах с помощью набора команд SQL, при удалении внешних ключей (не забудьте напомнить пользователям о необходимости резервного копирования перед такими операциями).

Обзор таблиц

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

Таблицы WordPress 4.4 (12)
Имя таблицы Описание Соответствующие области пользовательского интерфейса WordPress
wp_commentmeta У каждого комментария есть информация, называемая метаданные и она хранится в таблице wp_commentmeta.
wp_comments В таблице wp_comments в WordPress хранятся собственно сами Комментарии.
wp_links Таблица wp_links хранит информацию, относящуюся к ссылкам функциональность которых была введена как Links в WordPress. (Эта функциональность устарела, но её можно снова включить с помощью плагина Links Manager plugin.)
wp_options Настройки, сделанные в Administration > Settings панели хранятся в таблице wp_options. Названия настроек option_name и их значения по умолчанию, см. в Option Reference.
wp_postmeta У каждой записи есть информация, называемая метаданные и она хранится в таблице wp_postmeta. Некоторые плагины могут добавлять в эту таблицу их собственную информацию.
wp_posts Самые важные данные в WordPress это записи. Они хранятся в таблице wp_posts. В этой таблице также хранятся Страницы и элементы меню навигации.
wp_terms В таблице wp_terms хранятся категории как для записей так и для ссылок, а также теги для записей.
wp_termmeta У каждого термина есть информация, называемая метаданные и она хранится в таблице wp_termmeta.
wp_term_relationships Записи связываются с категориями и тегами с помощью таблицы wp_terms и эти связи обслуживаются в таблице wp_term_relationships. Связи ссылок с соответствующими их категориями, также хранятся в этой таблице.
wp_term_taxonomy Эта таблица описывает таксономию (категорию, ссылку или тег) для записей в таблице wp_terms.
wp_usermeta У каждого пользолвателя есть информация, называюемая метаданные и она хранится в таблице wp_usermeta.
wp_users Списокпользователей обслуживается в таблице wp_users.

Подробное описание таблиц

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

Таблица: wp_commentmeta

Поле Тип Null Ключ Умолчание Дополнительно
meta_id bigint(20) unsigned   PRI   auto_increment
comment_id bigint(20) unsigned   IND 0  
meta_key varchar(255) YES IND NULL  
meta_value longtext YES   NULL  

Индексы

Имя ключа Тип Поле
PRIMARY PRIMARY meta_id
comment_id INDEX comment_id
meta_key INDEX meta_key


Таблица: wp_comments

Поле Тип Null Ключ Умолчание Дополнительно
comment_ID bigint(20) unsigned   PRI   auto_increment
comment_post_ID bigint(20) unsigned   IND 0  
comment_author tinytext        
comment_author_email varchar(100)   IND    
comment_author_url varchar(200)        
comment_author_IP varchar(100)        
comment_date datetime     0000-00-00 00:00:00  
comment_date_gmt datetime   IND & IND Pt2 0000-00-00 00:00:00  
comment_content text        
comment_karma int(11)     0  
comment_approved varchar(20)   IND Pt1 1  
comment_agent varchar(255)        
comment_type varchar(20)        
comment_parent bigint(20) unsigned   IND 0  
user_id bigint(20) unsigned     0  

Индексы

Имя ключа Тип Поле
PRIMARY PRIMARY comment_ID
comment_post_ID INDEX comment_post_ID
comment_approved_date_gmt INDEX comment_approved
comment_date_gmt
comment_date_gmt INDEX comment_date_gmt
comment_parent INDEX comment_parent
comment_author_email INDEX comment_author_email


Таблица: wp_links

Поле Тип Null Ключ Умолчание Дополнительно
link_id bigint(20) unsigned   PRI   auto_increment
link_url varchar(255)        
link_name varchar(255)        
link_image varchar(255)        
link_target varchar(25)        
link_description varchar(255)        
link_visible varchar(20)   IND Y  
link_owner bigint(20) unsigned     1  
link_rating int(11)     0  
link_updated datetime     0000-00-00 00:00:00  
link_rel varchar(255)        
link_notes mediumtext        
link_rss varchar(255)        

Индексы

Имя ключа Тип Поле
PRIMARY PRIMARY link_id
link_visible INDEX link_visible



Таблица: wp_options

Поле Тип Null Ключ Умолчание Дополнительно
option_id bigint(20) unsigned   PRI   auto_increment
option_name varchar(64)   UNI    
option_value longtext      
autoload varchar(20)     yes  


Индексы

Имя ключа Тип Поле
PRIMARY PRIMARY option_id
option_name UNIQUE option_name

Таблица: wp_postmeta

Поле Тип Null Ключ Умолчание Дополнительно
meta_id bigint(20) unsigned   PRI   auto_increment
post_id bigint(20) unsigned   IND 0  
meta_key varchar(255) YES IND NULL  
meta_value longtext YES   NULL  

Индексы

Имя ключа Тип Поле
PRIMARY PRIMARY meta_id
post_id INDEX post_id
meta_key INDEX meta_key


Таблица: wp_posts

Поле Тип Null Ключ Умолчание Дополнительно
ID bigint(20) unsigned   PRI & IND Pt4   auto_increment
post_author bigint(20) unsigned   IND 0  
post_date datetime   IND Pt3 0000-00-00 00:00:00  
post_date_gmt datetime     0000-00-00 00:00:00  
post_content longtext        
post_title text        
post_excerpt text        
post_status varchar(20)   IND PT2 publish  
comment_status varchar(20)     open  
ping_status varchar(20)     open  
post_password varchar(20)        
post_name varchar(200)   IND    
to_ping text        
pinged text        
post_modified datetime     0000-00-00 00:00:00  
post_modified_gmt datetime     0000-00-00 00:00:00  
post_content_filtered longtext      
post_parent bigint(20) unsigned   IND 0  
guid varchar(255)        
menu_order int(11)     0  
post_type varchar(20)   IND Pt1 post  
post_mime_type varchar(100)        
comment_count bigint(20)     0  

Индексы

Имя ключа Тип Поле
PRIMARY PRIMARY ID
post_name INDEX post_name
type_status_date INDEX post_type
post_status
post_date
ID
post_parent INDEX post_parent
post_author INDEX post_author


Таблица: wp_terms

Поле Тип Null Ключ Умолчание Дополнительно
term_id bigint(20) unsigned   PRI   auto_increment
name varchar(200)   IND    
slug varchar(200)   UNI    
term_group bigint(10)     0  

Индексы

Имя ключа Тип Поле
PRIMARY PRIMARY term_id
slug UNIQUE slug
name INDEX name


Таблица: wp_termmeta

Поле Тип Null Ключ Умолчание Дополнительно
meta_id bigint(20) unsigned   PRI   auto_increment
term_id bigint(20) unsigned   IND 0  
meta_key varchar(255) YES IND NULL  
meta_value longtext YES   NULL  

Индексы

Имя ключа Тип Поле
PRIMARY PRIMARY meta_id
term_id INDEX term_id
meta_key INDEX meta_key


Таблица: wp_term_relationships

Поле Тип Null Ключ Умолчание Дополнительно
object_id bigint(20) unsigned   PRI Pt1 0  
term_taxonomy_id bigint(20) unsigned   PRI Pt2 & IND 0  
term_order int(11)     0  

Индексы

Имя ключа Тип Поле
PRIMARY PRIMARY object_id
term_taxonomy_id
term_taxonomy_id INDEX term_taxonomy_id


Таблица: wp_term_taxonomy

Поле Тип Null Ключ Умолчание Дополнительно
term_taxonomy_id bigint(20) unsigned   PRI   auto_increment
term_id bigint(20) unsigned   UNI Pt1 0  
taxonomy varchar(32)   UNI Pt2 & IND    
description longtext        
parent bigint(20) unsigned     0  
count bigint(20)     0  

Индексы

Имя ключа Тип Поле
PRIMARY PRIMARY term_taxonomy_id
term_id_taxonomy UNIQUE term_id
taxonomy
taxonomy INDEX taxonomy


Таблица: wp_usermeta

Поле Тип Null Ключ Умолчание Дополнительно
umeta_id bigint(20) unsigned   PRI   auto_increment
user_id bigint(20) unsigned   IND 0  
meta_key varchar(255) Yes IND NULL  
meta_value longtext Yes   NULL  

Индексы

Имя ключа Тип Поле
PRIMARY PRIMARY umeta_id
user_id INDEX user_id
meta_key INDEX meta_key

Таблица: wp_users

Поле Тип Null Ключ Умолчание Дополнительно
ID bigint(20) unsigned   PRI   auto_increment
user_login varchar(60)   IND    
user_pass varchar(64)        
user_nicename varchar(50)   IND    
user_email varchar(100)        
user_url varchar(100)        
user_registered datetime     0000-00-00 00:00:00  
user_activation_key varchar(60)      
user_status int(11)     0  
display_name varchar(250)        


ОБРАТИТЕ ВНИМАНИЕ: NOTE: Включение функции мультисайтов в WordPress добавляет два поля в таблицу wp_users: spam и deleted. См. Мультисайтовую версию.

Индексы

Имя ключа Тип Поле
PRIMARY PRIMARY ID
user_login_key INDEX user_login
user_nicename INDEX user_nicename

Обзор таблиц при работе фукнциональности мультисайтов

Этот раздел представляет собой обзор таблиц, созданных для использования с функциональностью мультисайтов в WordPress. Эти таблицы создаются с помощью процессов в разделе

Administration > Tools > Network.

Эти таблицы считаются многосайтовыми глобальными таблицами.

Мультисайтовые таблицы WordPress 3.0
Имя таблицы Описание Соответствующие области пользовательского интерфейса WordPress
wp_blogs Каждый созданный сайт хранятся в таблице wp_blogs.
wp_blog_versions Состояние текущей версии базы данных каждого сайта обслуживается в таблице wp_blogs_versions и обновляется для каждого сайта при его обновлении.
wp_registration_log Когда администратор создаёт новый сайт, в таблице wp_registration_log создаются соответствующие записи.
wp_signups Эта таблица содержит пользователя, который зарегистрировался на сайте через процесс регистрации. Регистрация пользователей включается в Administration > Super Admin > Options.
wp_site Таблица wp_site содержит адрес главного сайта.
wp_sitemeta У каждого сайта есть информация, называемая данные сайта и она хранится в таблице wp_sitemeta. Также в этой таблице хранится различная информация, связанная с настройкой, включая администратора сайта.
wp_users Список всех пользователей обслуживается в таблице wp_users. Мультисайтовость добавляет два поля, которых нет в обычной версии.
wp_usermeta Данная таблица не пересоздаётся для мультисайтовости, но мета данные пользователей для каждого сайта, хранятся в wp_usermeta.
Site Specific Tables Данные основного сайта хранятся в существующих ненумерованных таблицах. Данные дополнительных сайтов хранятся в новых пронумерованных таблицах.


Подробное описание мультисайтовых таблиц

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

Таблица: wp_blogs

Поле Тип Null Ключ Умолчание Дополнительно
blog_id bigint(20)   PRI   auto_increment
site_id bigint(20)     0  
domain varchar(200)   IND Pt1    
path varchar(100)   IND Pt2    
registered datetime     0000-00-00 00:00:00  
last_updated datetime     0000-00-00 00:00:00  
public tinyint(2)     1  
archived tinyint(2)     0  
mature tinyint(2)     0  
spam tinyint(2)     0  
deleted tinyint(2)     0  
lang_id int(11)   IND 0  

ПРИМЕЧАНИЕ: blog_id идентифицирует сайт, а site_id идентифицирует сеть. Это след прошлого, когда 'сайт' назывался 'блог' в WordPress 2.x. Если вы добавите свой сайт в сеть, новая запись будет добавлена в таблицу wp_blogs с увеличенным значением blog_id и тем же самым site_id.

Индексы

Имя ключа Тип Поле
PRIMARY PRIMARY blog_id
domain INDEX domain
path
lang_id INDEX lang_id


Таблица: wp_blog_versions

Поле Тип Null Ключ Умолчание Дополнительно
blog_id bigint(20)   PRI 0  
db_version varchar(20)   IND    
last_updated datetime     0000-00-00 00:00:00  

Индексы

Имя ключа Тип Поле
PRIMARY PRIMARY blog_id
db_version INDEX db_version


Таблица: wp_registration_log

Поле Тип Null Ключ Умолчание Дополнительно
ID bigint(20)   PRI   auto_increment
email varchar(255)        
IP varchar(30)   IND    
blog_id bigint(20)     0  
date_registered datetime     0000-00-00 00:00:00  

Индексы

Имя ключа Тип Поле
PRIMARY PRIMARY ID
IP INDEX IP

Таблица: wp_signups

Поле Тип Null Ключ Умолчание Дополнительно
signup_id bigint(20)   PRI   auto_increment
domain varchar(200)   IND Pt1    
path varchar(100)   IND Pt2    
title longtext        
user_login varchar(60)   IND Pt1    
user_email varchar(100)   IND & IND Pt2    
registered datetime     0000-00-00 00:00:00  
activated datetime     0000-00-00 00:00:00  
active tinyint(1)        
activation_key varchar(50)   IND    
meta longtext Yes   NULL  

Индексы

Имя ключа Тип Поле
signup_id PRIMARY signup_id
activation_key INDEX activation_key
user_email INDEX user_email
user_login_email INDEX user_login
user_email
domain_path INDEX domain
path

Таблица: wp_site

Поле Тип Null Ключ Умолчание Дополнительно
id bigint(20)   PRI   auto_increment
domain varchar(200)   IND Pt1    
path varchar(100)   IND Pt2    

Индексы

Имя ключа Тип Поле
PRIMARY PRIMARY id
domain INDEX domain
path


Таблица: wp_sitemeta

Поле Тип Null Ключ Умолчание Дополнительно
meta_id bigint(20)   PRI   auto_increment
site_id bigint(20)     0  
meta_key varchar(255) Yes IND NULL  
meta_value longtext Yes IND NULL  

Индексы

Имя ключа Тип Поле
PRIMARY PRIMARY meta_id
meta_key INDEX meta_key
site_id INDEX site_id


Таблица: wp_users

Поле Тип Null Ключ Умолчание Дополнительно
ID bigint(20) unsigned   PRI   auto_increment
user_login varchar(60)   IND    
user_pass varchar(64)        
user_nicename varchar(50)   IND    
user_email varchar(100)        
user_url varchar(100)        
user_registered datetime     0000-00-00 00:00:00  
user_activation_key varchar(60)      
user_status int(11)     0  
display_name varchar(250)        
spam tinyint(2)     0  
deleted tinyint(2)     0  

Индексы

Имя ключа Тип Поле
PRIMARY PRIMARY ID
user_login_key INDEX user_login
user_nicename INDEX user_nicename

Специфичные таблицы для сайта

Когда создается новый дополнительный сайт, создаются таблицы, специфичные для сайта, аналогичные стандартным таблицам выше. Каждый набор таблиц для сайта создается с идентификатором сайта (blog_id) как частью имени таблицы. Это таблицы, которые должны быть созданы для идентификатора сайта 2 и table_prefix wp_:


Данные главного сайта хранятся в ненумерованных таблицах.

Исходный файл

Структура базы данных определяется в wp-admin/includes/schema.php

Ресурсы

Changelog

  • 4.2.2 :
    • termmeta table: New table to house term related data.
    • Database Diagram: Added the new diagram including the wp_termmeta table.
  • 2.8 :
    • comments table: Changed comment_post_ID column from int(11) to bigint(20) unsigned.
    • links table: Deleted link_category column. Changed link_owner column from int(11) to bigint(20) unsigned.
    • posts table: Deleted post_category column.
    • term_taxonomy table: Added KEY taxonomy.
    • Add unsigned attribute to various bigint(20) fields.