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


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

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

Author: Dwayne Charrington, 2011-01-28

1 answers

Я не на 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)
 2
Author: MikeSchinkel, 2020-06-15 08:21:38