В какой части ядра WordPress присоединяются таблица пользователей и таблица UserMeta?
Вопрос
Я пытался выяснить, где в массивных джунглях 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);
Что касается добавления крючков, я думаю, что этот ответ может быть тем, что вы ищете?
ОБНОВИТЬ
На основании некоторых последующих комментариев я добавлю:
Функция
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)