Old

WordPress函数: 根据用户名获取用户ID

2016.6.24 更新:可以通过 get_urser_by() 函数来实现,所以具体去 https://developer.wordpress.org/reference/functions/get_user_by/

---

这个是最近折腾一个主题遇到的,功能是后台设置里填入的用户名,然后在前台这些用户的头像和链接,例如:后台设置里填入:zwwooooo,zww,那么前台就显示zwwooooo和zww这两个用户的头像、链接。

这个功能要求有点蛋疼,要是全部输出就简单多了,不过既然有这个要求,那么就要解决一下。

思路

1. 根据用户名获取用户ID

2. 然后用 the_author_meta( $field, $userID ); 输出需要的用户信息。
the_author_meta官方函数说明 http://codex.wordpress.org/Function_Reference/the_author_meta

问题:可惜我找遍了整个WordPress函数库(夸张)都没有这种“根据用户名获取用户ID”的函数。

请教:我请教几个主题制作高手都说貌似没这种函数。。。囧。。。

解决:那么就是说要用最厉害的 SQL 来解决了?不过这会增加数据库查询,没办法,对方执意要直接填用户名实现——直接用用户ID多好啊,高效!简单!算了,客户是上帝。

方法:我自己根据 MySql 表码的 SQL 语句写的函数,函数代码如下(放到主题functions.php 里面)

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

调用方法:<?php get_user_id($user); ?>

要直接显示获取的用户id就这样 <?php echo get_user_id($user); ?>

不知道有没有更好的解决方法?有的话烦请高手告知。

zww
or
oooo

声明: 除非注明,ZWWoOoOo文章均为原创,转载请以链接形式标明本文地址
本文地址: http://zww.me/archives/25365

77 comments

  1. Weitian Zhao Weitian Zhao Google Chrome 10 Google Chrome 10 Windows 7 Windows 7

    先sf :mrgreen:

    沙发
  2. Weitian Zhao Weitian Zhao Google Chrome 10 Google Chrome 10 Windows 7 Windows 7

    呃 好吧 我承认这功能是干啥的我没看懂
    琢磨半天第一段- =

    板凳
  3. 不羡鱼 不羡鱼 Firefox 3 Firefox 3 Windows XP Windows XP

    后台填用户名,前台显示头像和链接,是要在文章中显示不同作者头像吧? :shock:

    地板
  4. ......
  5. wmtimes wmtimes Firefox 3 Firefox 3 Windows 7 Windows 7

    学习下,接下来说不定用得着。

    21楼
  6. 左心房的洞 左心房的洞 ChromePlus 1 ChromePlus 1 Windows XP Windows XP

    多用户博客应该挺有用的

    22楼
  7. 木本无心 木本无心 Google Chrome 7 Google Chrome 7 Windows XP Windows XP

    你这方法我还好理解些……

    23楼
  8. 小托 小托 Internet Explorer 8 Internet Explorer 8 Windows XP Windows XP

    太强大了。。支持 ZWW :mrgreen:

    24楼
  9. 小邪 小邪 Google Chrome 10 Google Chrome 10 Windows XP Windows XP

    zww主题帝威武 o(* ̄▽ ̄*)ゞ。

    25楼
  10. zigbee zigbee Google Chrome 8 Google Chrome 8 GNU/Linux GNU/Linux

    确实能折腾。 :mrgreen:

    26楼
  11. 竹下无为梦 竹下无为梦 Firefox 3 Firefox 3 Windows XP Windows XP

    :shock: 这个我能看懂。不过用不上嗄

    27楼
  12. 优趣 优趣 Google Chrome 9 Google Chrome 9 Windows XP Windows XP

    神马情况下会用到?

    28楼
  13. 猪八戒 猪八戒 Firefox 3 Firefox 3 Windows XP Windows XP

    我的press还有待研究。

    29楼
  14. 枯木 枯木 Internet Explorer 6 Internet Explorer 6 Windows XP Windows XP

    回复是对博主得支持!!!

    30楼
  15. 颖佳论坛 颖佳论坛 Google Chrome 9 Google Chrome 9 Windows 7 Windows 7

    $user="'".$user."'";这句是什么意思。为什么前后 都有引号将'包围呢?初学PHP。请指导 。

    31楼
  16. 世纪之光 世纪之光 Google Chrome 8 Google Chrome 8 Windows 7 Windows 7

    没有现成的对外接口?

    32楼
  17. 求索阁 求索阁 Google Chrome 7 Google Chrome 7 Windows 7 Windows 7

    博主,wordpress有没有这样的功能:即某个栏目的文章只允许特定角色的读者(如:注册用户等)才能浏览?

    33楼
  18. asunchou asunchou Firefox 3 Firefox 3 Windows 7 Windows 7

    博主强大,看来有时间我还得好好拜访下wp codex,嘿嘿

    34楼
  19. emric emric Google Chrome 25 Google Chrome 25 Windows XP Windows XP

    id;
    ?>
    如果没有记错的话应该是这个.
    应该还有另外一个,一共有两个.

    35楼
  20. emric emric Google Chrome 25 Google Chrome 25 Windows XP Windows XP

    <?php
    $user = get_user_by('login', 'name');
    echo $user->id;
    ?>
    貌似不能输入代码 - -

    36楼
    • zwwooooo zwwooooo Google Chrome 23 Google Chrome 23 Windows 7 Windows 7

      @emric
      直接当然不能输入代码,你要用code括住。现在不需要鸟,下次有这种需求再试试。

  21. feiyang feiyang Firefox 30 Firefox 30 Windows 7 Windows 7

    大哥~怎么获取用户的评论数呢? :oops:

    37楼
  22. qinnek qinnek Google Chrome 46 Google Chrome 46 Windows 7 Windows 7

    请问怎么通过邮箱获取id

    38楼
    • zwwooooo zwwooooo Firefox 44 Firefox 44 Windows 10 Windows 10

      @qinnek 用这个 get_user_by():https://developer.wordpress.org/reference/functions/get_user_by/

  23. 千年骚狐 千年骚狐 Google Chrome 45 Google Chrome 45 Windows 10 Windows 10

    用户名是数字的可以获取,是英文字母的,没有ID显示。

    39楼

Leave a Reply