Таблица wp_usermeta
Таблица wp_usermeta
является одной из ключевых таблиц WordPress и служит для хранения произвольных метаданных, связанных с пользователями. Она работает по принципу "ключ-значение", что позволяет гибко расширять стандартный набор полей пользователя без изменения структуры основной таблицы wp_users
.
Поля
Поле | Тип данных | Описание |
---|---|---|
umeta_id |
bigint(20) unsigned |
Уникальный идентификатор записи метаданных (первичный ключ, автоинкремент). |
user_id |
bigint(20) unsigned |
Внешний ключ, который связывает метаданные с конкретным пользователем. Ссылается на поле ID в таблице wp_users .
|
meta_key |
varchar(255) |
Ключ (название) метаполя. Например, first_name , last_name , wp_capabilities .
|
meta_value |
longtext |
Значение, связанное с указанным ключом meta_key . Может хранить строки, сериализованные массивы или объекты.
|
Как это работает
Ядро WordPress, плагины и темы используют эту таблицу для хранения самой разнообразной информации о пользователях, которая не входит в стандартный набор полей (логин, email, пароль).
Стандартные метаполя WordPress, которые автоматически добавляются для каждого пользователя, включают:
first_name
- имя пользователя.last_name
- фамилия пользователя.nickname
- никнейм.description
- биографическая информация.wp_capabilities
- сериализованный массив capabilities (возможностей) пользователя.wp_user_level
- уровень пользователя (устаревшее, для обратной совместимости).session_tokens
- сериализованный массив активных сессий пользователя.
Популярные плагины, такие как WooCommerce, Advanced Custom Fields, BuddyPress, также активно используют эту таблицу для хранения своей пользовательской информации, создавая собственные ключи meta_key
.
Для работы с метаданными пользователей WordPress предоставляет простые и удобные функции: get_user_meta()
, add_user_meta()
, update_user_meta()
и delete_user_meta()
. Эти функции автоматически обрабатывают сериализацию/десериализацию данных и кеширование запросов.
Стоит отметить, что из-за своей гибкости таблица wp_usermeta
может сильно разрастаться, особенно на сайтах с большим количеством пользователей и активными плагинами. Для поддержания производительности рекомендуется периодически чистить неиспользуемые метаданные.
Пример SQL-запроса
Получить все метаданные для пользователя с ID 10 можно следующим запросом:
SELECT umeta_id, meta_key, meta_value
FROM wp_usermeta
WHERE user_id = 10
ORDER BY meta_key;
Найти всех пользователей с определенным значением метаполя (например, городом 'Москва'):
SELECT u.ID, u.user_login, u.display_name
FROM wp_users u
INNER JOIN wp_usermeta um ON (u.ID = um.user_id)
WHERE um.meta_key = 'billing_city' AND um.meta_value = 'Москва';
Смотрите также
-
таблицу
wp_users
,
которая хранит основную информацию о пользователях -
таблицу
wp_posts
,
которая хранит записи, страницы и другие типы контента -
таблицу
wp_options
,
которая работает по схожему принципу "ключ-значение" для настроек сайта