WordPress 根据用户名获取用户 Id 的两种方式

这个问题是我在做前端登陆注册,并通过邮件激活账户的时候发现的,因为 WordPress 并没有封装单独的根据用户名获取用户 id 的方法,百度后找到两种方式来获得用户 id。一种是直接操作数据库,通过数据库查询找到我们需要的用户 id,另一种就是通过 WordPress 函数查询用户所有数据,然后输出 id 字段。其实前者就是后者的封装,下面我们看看这两种方式的实现代码。

这个问题是我在做前端登陆注册,并通过邮件激活账户的时候发现的,因为 WordPress 并没有封装单独的根据用户名获取用户 id 的方法,百度后找到两种方式来获得用户 id。一种是直接操作数据库,通过数据库查询找到我们需要的用户 id,另一种就是通过 WordPress 函数查询用户所有数据,然后输出 id 字段。其实前者就是后者的封装,下面我们看看这两种方式的实现代码。

 

方式一,查数据库获得用户 id

 

PHP

 

1

function get_user_id($user=”){ $user=”‘”.$user.”‘”; global $wpdb; $user_ids = $wpdb->get_col(“SELECT ID FROM $wpdb->users WHERE user_login = $user ORDER BY ID”); foreach($user_ids as $user_id){ return $user_id; } }

将上面的代码放在 functions.php 文件中,使用<?php echo get_user_id($user); ?>输出用户 id。

 

方式二,WordPress 函数查询用户 id

 

PHP

 

1

function get_user_id($user=”){ $author_obj = get_user_by(‘login’, $user); return $author_obj-&gt;ID; }

使用方式与方式一的一样,核心代码只有两句 get_user_by 与$author_obj->ID,与方式一相比,明显代码简洁很多,建议使用第二种方式获取用户 id。

 

Get_user_by 使用说明

 

PHP

 

1

get_user_by( string $field, int|string $value )

按指定字段检索用户信息。

参数解释

 

$field

(字符串) (必须) 用户检索的字段. id | ID | slug | email | login.

$value

(整型|字符串) (必须) 检索字段的值. user ID, slug, email address, or login name.

返回值

 

(WP_User|false) 成功返回 WP_User 对象,失败返回 false。

 

简单使用

 

PHP

 

1

$user = get_user_by( ’email’, ‘user@example.com’ ); echo ‘User is ‘ . $user-&gt;first_name . ‘ ‘ . $user-&gt;last_name;