# 使用用户元数据
#### 介绍
WordPress 的`users`表被设计为仅包含有关用户的基本信息。
笔记:从 WP 4.7 开始,该表包含:`ID`、`user_login`、`user_pass`、`user_nicename`、`user_email`、`user_url`、`user_registered`、`user_activation_key`和。`user_status``display_name`
因此,为了存储额外的数据,`usermeta`引入了表,它可以存储有关用户的任意数量的数据。
`ID`两个表使用基于表中的一对多关系连接在一起`users`。
#### 操纵用户元数据
操作用户元数据有两种主要方法。
1. 用户个人资料屏幕中的表单字段。
2. 以编程方式,通过函数调用。
#### 通过表单字段
表单字段选项适用于用户有权访问 WordPress 管理区域的情况,他可以在其中查看和编辑配置文件。
在我们深入研究示例之前,了解该过程中涉及的钩子以及它们存在的原因非常重要。
#### show\_user\_profile钩
每当用户编辑**其自己的**用户配置文件时,就会触发此操作挂钩。
**请记住,**无法编辑自己的个人资料的用户不会触发此挂钩。
#### edit\_user\_profile钩
每当用户编辑**其他人**的用户配置文件时,就会触发此操作挂钩。
**请记住,**不具备编辑第 3 方配置文件功能的用户不会触发此挂钩。
#### 表单字段示例
在下面的示例中,我们将向所有个人资料屏幕添加生日字段。在配置文件更新时将其保存到数据库中。
```php
/**
* The field on the editing screens.
*
* @param $user WP_User user object
*/
function wporg_usermeta_form_field_birthday( $user ) {
?>
It's Your Birthday
add_user_meta()`、`update_user_meta()`和。`delete_user_meta()``get_user_meta()`
#### 添加
```php
add_user_meta(
int $user_id,
string $meta_key,
mixed $meta_value,
bool $unique = false
);
```
`add_user_meta()`有关所用参数的完整说明,请参阅函数参考。
#### 更新
```php
update_user_meta(
int $user_id,
string $meta_key,
mixed $meta_value,
mixed $prev_value = ''
);
```
`update_user_meta()`有关所用参数的完整说明,请参阅函数参考。
#### 删除
```php
delete_user_meta(
int $user_id,
string $meta_key,
mixed $meta_value = ''
);
```
`delete_user_meta()`有关所用参数的完整说明,请参阅函数参考。
#### 得到
```php
get_user_meta(
int $user_id,
string $key = '',
bool $single = false
);
```
`get_user_meta()`有关所用参数的完整说明,请参阅函数参考。
请注意,如果您仅传递`$user_id`,该函数将以关联数组的形式检索所有元数据。
您可以在插件或主题中的任何位置呈现用户元数据。