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

Таблица 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,
    которая работает по схожему принципу "ключ-значение" для настроек сайта