Работа с метаданными пользователя

users-in-wordpress

Таблица WordPress users содержит небольшое количество информации о пользователе и не может содержать больше. По этой причине существует usermeta таблица. По умолчанию она содержит такие вещи, как фамилия, имя, прозвище и т.д. Что-угодно может быть помещено там, данные просто связаны с помощью user_id.

Есть два различных основных сценария для управления пользовательскими мета-данными. Первый — с помощью произвольных полей формы на странице профиля пользователя и второй — программно с помощью соответствующих функций.

Добавление Мета через форму в профиле пользователя

Создание формы

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

Обратите внимание, что здесь две экшен метки. show_user_profile предназначен для отображения формы на вашем собственном профиле и edit_user_profile предназначен для отображения его на всех остальных.

Приведенный выше код будет показывать HTML-блок на странице профиля, как здесь:

working-with-user-metadata-wordpress

Сохранение данных

Просто сделав форму, не означает пока сохранение данных. Для этого вы должны использовать следующий код:

Следует отметить, что update_usermeta используется, даже когда есть вероятность, что значение не существовало до этого. Это не проблема, значение будет создано, даже если оно не существует.

Также обратите внимание на две функции add_action. Подобно куску кода выше, одна из них относится к вашей собственной странице профиля и другая для всех остальных.

Большая часть текст выше взята из этой записи от Justin Tadlock.

Добавление мета-данных пользователя программно

Есть два способа добавления мета-данных пользователя программно: add_user_meta() и update_user_meta().

add_user_meta()

<?php add_user_meta( $user_id, $meta_key, $meta_value, $unique ); ?>

Получение и показ мета пользователя

Получение пользовательских мета может быть сделано всех сразу и может возвращать массив всех значений или вы можете получить его единственное значение. Вот функция:

<?php get_user_meta($user_id, $key, $single); ?>

Если вы просто передаете $user_id вы получите все параметры в массиве.

Если передать $user_id и ключ ( $key ), то вы получите значение для этого ключа в массиве.

Если вы передаете все и $single соответствует TRUE, то вы получите значение либо в виде строки либо int, если значение, которое хранится само по себе не массив или объект.

В этот случае вы можете выводить значения, как вы хотите.

Навигация по разделам:

Оставить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *