В какой части ядра Wordpress объединяются таблица пользователей и таблица usermeta?
Я пытался понять, где в огромных джунглях классов Wordpress include таблица usermeta соединена с таблицей пользователей, и если да, то как это работает?
Единственное, что меня смущает в таблице usermeta, это то, что в ней используются поля ключа/значения для полей базы данных, а не фактические значения, такие как имя пользователя или фамилия. Как Wordpress узнает, какие поля извлекать по умолчанию, и существуют ли крючки, действия и фильтры для добавления и получение данных из поля usermeta?
1 answers
Я не на 100% то, что вы спрашиваете, похоже, несколько вопросов? Но вот что:
$meta_value = get_user_meta($user_id, $key, $single);
Например:
$first_name = get_user_meta($user_id, 'first_name', true);
Что касается добавления крючков, я думаю, что этот ответ может быть тем, что вы ищете?
ОБНОВЛЕНИЕ
Основываясь на некоторых последующих комментариях, я добавлю:
-
Функция
get_user_metavalues($user_ids)
из/wp-includes/user.php
вернет массив пользовательских данных массивы. -
Функция
get_userdata()
извлекает пользовательские значения с помощьюget_user_metavalues($user_ids)
из/wp-includes/pluggable.php
и возвращает объект пользовательских данных. -
Мета пользователя управляется с помощью общих функций метаданных, найденных в
/wp-includes/meta.php
, поэтому, если вы ищете SQLJOIN
между 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)