在 WordPress 主题的开发过程中，获取用户 ID 的频率是很高的，可在 WordPress 中查看用户信息，也可以通过代码直接获取。

### 一、在 **WordPress 后台区域找到用户 ID**

这是一个非常简单的方法，需要有后台管理权限的用户才能查看。

1、登录 WordPress 后台

2、转到用户——所有用户列表页面

3、编辑用户

4、在当前页面链接中的 user\_id= 后面的数字即是用户的 ID

### 二、获取当前用户 ID（也可以获取用户名，Email 等）

获取当前登录用户ID的最佳方法是使用`get_current_user_id()`函数。

```
$current_user_id = get_current_user_id();
```

与wp\_get\_current\_user()方法相同的函数：

```
$current_user = wp_get_current_user();
$current_user_id = $current_user->ID;
```

`get_current_user_id()`的用法对我来说似乎更简单，但你可以使用任何你想要的方式，因为在代码中它们是相同的。

获取用户其它信息：

```
$user_email = $current_user->user_email;
$first_name = $current_user->first_name;
$display_name = $current_user->display_name;
```

### 三、通过 Email 获取用户 ID

可使用 `get_user_by()` 函数获取用户信息

```
$the_user = get_user_by('email', 'admin@salongweb.com');
$the_user_id = $the_user->ID;
```

反过来，我们也可以通过 ID 获取用户的 Email

```
$the_user = get_user_by( 'id', 1 ); // 用户 ID 为1
echo $the_user->user_email;
```

### 四、通过用户名获取用户 ID

同样是使用 `get_user_by()` 函数获取用户信息

```
$the_user = get_user_by('login', 'salongweb');
$the_user_id = $the_user->ID;
```

反过来，我们也可以通过 ID 获取用户的用户名，和通过 ID 获取用户 Email 是一样的。

五、通过姓名名获取用户 ID

打印所有姓为“sa”的用户的 ID：

```
global $wpdb;
$users = $wpdb->get_results("SELECT user_id FROM $wpdb->usermeta WHERE meta_key = 'first_name' AND meta_value = 'sa'");
if ($users) {
    foreach ($users as $user) {
        echo $user->user_id;
    }
} else {
    echo '没有该姓的用户。';
}
```

打印所有名字为“longlong”的用户的 ID：

```
global $wpdb;
$users = $wpdb->get_results("SELECT user_id FROM $wpdb->usermeta WHERE meta_key = 'first_name' AND meta_value = 'longlong'");
if ($users) {
    foreach ($users as $user) {
        echo $user->user_id;
    }
} else {
    echo '没有该名字的用户。';
}
```

如果您想通过任何用户元值查找用户ID，那么上面的代码可以工作。只需将`meta_key`和`meta_value`替换为您需要的。

当然，在get\_user\_meta( $id, $meta\_key, true)函数的帮助下，你也可以得到用户的姓和名以及任何meta。

### 六、通过文章 ID 获取作者 ID

在这种情况下，您可以从`WP_Post`对象获取用户ID。

```
$my_post = get_post( $post_id ); // 获取文章 ID 获取文章数据
echo $my_post->post_author; // 打印出作者 ID
```

也可以使用 `get_post_field()` 函数来直接获取作者的 ID

```
$author_id = get_post_field('post_author', $post_id);
```

### 七、从 WooCommerce 的订单中获取客户 ID

有两种不同的方法，第一种是通过订单元数据获取客户 ID：

```
$customer_id = get_post_meta( 123, '_customer_user', true); // 123 是订单 ID
```

第二个可通过`WC_Order`类来获取，WooCommerce 版本需3.0 +。

```
$order = wc_get_order( 123 ); // 123 是订单 ID
$customer_id = $order->get_customer_id(); //  或者 $order->get_user_id() 是一样的
```

### 八、将用户 ID 添加到 WordPress 用户列表的列中

这对于管理员来说，查看用户 ID 是相当的方便快捷，可将如下代码添加到 WordPress 主题函数文件 functions.php 中

```
/*
 * 添加用户列表栏目
 */
function salong_user_id_column($columns)
{
    $columns['user_id'] = 'ID';
    return $columns;
}
add_filter('manage_users_columns', 'salong_user_id_column');

/*
 * 栏目内容
 */
function salong_user_id_column_content($value, $column_name, $user_id)
{
    if ('user_id' == $column_name)
        return $user_id;
    return $value;
}
add_action('manage_users_custom_column',  'salong_user_id_column_content', 10, 3);
```