WordPressコアのどの部分で、ユーザーテーブルとUsermetaテーブルが参加しますか?

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

質問

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);

フックを追加することに関しては、この答えはあなたが探しているものかもしれないと思いますか?

アップデート

いくつかのフォローアップコメントに基づいて追加します:

  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