• 注册
  • 个人说明:TA有点懒了,什么都没有写。
    关注 1 粉丝 0 喜欢 0 内容 256
    河南省·郑州市
    聊天 送礼

    新版界面开发进度

    14%
    其实就是啥也没写,只有想法,哈哈
    • 回帖总排行
    • 采纳总排行

    分享精彩给好友

    全部文章 关注:0 内容:1074

    WordPress根据用户名获取用户id的两种方式【转】

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

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

      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

      function get_user_id($user=''){
       $author_obj = get_user_by('login', $user);
      return $author_obj->ID;
      }

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

      get_user_by使用说明

      get_user_by( string $fieldint|string $value )
      按指定字段检索用户信息。

      参数解释

      $field

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

      $value

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

      返回值

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

      简单使用

      $user = get_user_by( 'email', 'user@example.com' );
      echo 'User is ' . $user->first_name . ' ' . $user->last_name;
      你需要登录,才能进行发帖操作