WordPressコアのどの部分で、ユーザーテーブルとUsermetaテーブルが参加しますか?
質問
WordPressの巨大なジャングルの中で、Usermetaテーブルがユーザーテーブルに接続されているクラスが含まれている場所で、私は解決しようとしています。もしそうなら、それはどのように機能しますか?
私にとってUsermetaテーブルについて混乱することの1つは、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
したがって、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)