В какой части ядра WordPress присоединяются таблица пользователей и таблица UserMeta?

wordpress.stackexchange https://wordpress.stackexchange.com/questions/7981

Вопрос

Я пытался выяснить, где в массивных джунглях WordPress включают классы, таблица UserMeta соединен в таблицу пользователей, и если да, то как это работает?

Единственная запутанная вещь в таблице UserMeta для меня заключается в том, что она использует поля ключей/значения для полей базы данных, а не фактических значений, таких как First_Name или Last_Name. Как WordPress узнает, какие поля вытащить по умолчанию и есть ли крючки, действия и фильтры для добавления и получения данных из поля UserMeta?

Это было полезно?

Решение

Я не на 100% то, что вы задаете, кажется, что несколько вопросов? Но вот идет:

 $meta_value = get_user_meta($user_id, $key, $single);

Например:

 $first_name = get_user_meta($user_id, 'first_name', true);

Что касается добавления крючков, я думаю, что этот ответ может быть тем, что вы ищете?

ОБНОВИТЬ

На основании некоторых последующих комментариев я добавлю:

  1. Функция get_user_metavalues($user_ids) из /wp-includes/user.php Вернут массив массивов пользовательских данных.

  2. Функция get_userdata() получает пользовательские значения, используя get_user_metavalues($user_ids) из /wp-includes/pluggable.php и возвращает объект пользовательских данных.

  3. Мета пользователя управляется с помощью общих функций метаданных, найденных в /wp-includes/meta.php Так что, если вы ищете SQL JOIN Между WP_USERS и WP_USERMETA вы вряд ли найдете один. Этот файл включает эти функции:

add_metadata($meta_type,$object_id,$meta_key,$meta_value,$unique=false)
update_metadata($meta_type,$object_id,$meta_key,$meta_value,$prev_value='')
delete_metadata($meta_type,$object_id,$meta_key,$meta_value='',$delete_all=false)
get_metadata($meta_type,$object_id,$meta_key='',$single=false)
update_meta_cache($meta_type,$object_ids)
Лицензировано под: CC-BY-SA с атрибуция
Не связан с wordpress.stackexchange
scroll top