Работа с данными в WordPress. Часть 5: Работа с пользовательскими данными в WordPress

В WordPress пользовательские данные хранятся в таблице wp_users, которая соединена с таблицами wp_posts и wp_comments:

users-table-and-related-tables

Также пользовательские данные в WordPress хранятся и в двух других таблицах:

  • Дополнительные мета-данные, связанные с пользователями, хранятся в таблице wp_usermeta
  • Данные о незарегистрированных комментаторах хранятся в таблице wp_comments

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

Таблица wp_users

Таблица wp_users хранит всю базовую информацию о каждом пользователе. Она имеет следующие поля:

ПолеЧто оно хранитПримечания
IDID пользователяавтоматически генерируется
user_loginимя пользователяобязательное
user_passпарольавтоматически генерируется, если не был получен при регистрации
user_nicenameникнеймавтоматически генерируется, если не был введен
user_emailпочтовый адресобязателен
user_urlвеб-сайтне обязателен
user_registeredдата и время первой регистрации пользователяавтоматически генерируется
user_activation_keyключ активации пользователяавтоматически генерируется
user_statusстатус, хранящийся в виде числа – с его помощью можно определить, подтвердил ли пользователь регистрацию по почте, к примеру. Он не сохраняет пользовательские роли.автоматически генерируется
display_nameпублично отображаемое имяавтоматически генерируется, если не было введено вручную

Как вы можете видеть, все за исключением одного поля (user_url) являются либо обязательными при регистрации, либо автоматически сгенерированными.

Пользовательские мета-данные

Как и данные в wp_users, пользовательские мета-данные создаются для всех пользователей, однако хранятся в таблице wp_usermeta – сюда можно отнести, к примеру, роли и возможности. Эта таблица также используется для хранения дополнительных параметров, позволяющих улучшить опыт взаимодействия – к примеру, выбранная цветовая схема панели администратора, параметры вывода админ-бара и консоли.

Именно эту таблицу вы должны использовать, когда вы хотите создать дополнительные поля для пользователей в вашей теме или плагине – вы никогда не должны добавлять поля к главной таблице wp_users.

Каждая запись в таблице wp_usermeta имеет четыре поля:

  • ID – ID записи в таблице
  • user_id – связан с wp_users
  • meta_key
  • meta_value

Чтобы создать новую запись в таблице с метаданными пользователей, вы можете воспользоваться функцией add_user_meta():

add_user_meta( $user_id, $meta_key, $meta_value, $unique );

Четвертый параметр в функции — $unique – является необязательным. Он определяет, должно ли быть значение в поле meta_key уникальным.

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

Я расскажу про последний вариант чуть позже в данном руководстве, когда я перейду к рассмотрению метаданных и таксономий.

Отношения между пользователями и остальным контентом

Пользователи могут быть связаны с двумя типами контента: записями и комментариями. В случае с записями, всегда найдется пользователь, который будет их автором. То есть, имеют место отношения между полем post_author в wp_posts и полем ID в wp_users.

Комментарии не всегда связаны с таблицей wp_users: ссылка создается лишь в том случае, если комментатор является зарегистрированным пользователем. В данном случае ссылка будет между ID в wp_users и user_ID в wp_comments.

Если комментатор не является зарегистрированным пользователем, то в таком случае вся информация о нем будет записываться напрямую в таблицу wp_comments, используя поля comment_author, comment_author_email, comment_author_url и comment_author_IP.

Заключение

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

В WordPress основные данные о пользователях хранятся в таблице wp_users. Также используется таблица wp_usermeta для дополнительных метаданных. Пользовательские данные также связаны с записями в таблице wp_posts и с комментариями в таблице wp_comments.

Источник: code.tutsplus.com

Блог про WordPress
Комментарии: 1
  1. Ann

    Поставила плагин на сайте(Вордпресс) для регистрации на русском языке и нужно теперь прописать в базе данных sql, в таблице wp_users, в колонке user_nicename разрешение на запись большего количества символов из 50 по умолчанию до 255.
    Как прописать и что сделала не так не подскажете?
    Пробовала, не сработало:
    ALTER TABLE wp_users ALTER COLUMN user_nicename varchar(200) NOT NULL

    ALTER TABLE `wp_users` CHANGE `user_nicename` `user_nicename` VARCHAR(255) NOT NULL DEFAULT »; -ошибка #1067

Добавить комментарий

Получать новые комментарии по электронной почте.