2010年12月20日 77条评论

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

“WordPress函数: 根据用户名获取用户ID”有77条评论

  1. wmtimes says:

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

  2. 多用户博客应该挺有用的

    1. zwwooooo says:

      @左心房的洞
      对,多用户的博客有些需要吧

  3. 木本无心 says:

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

    1. zwwooooo says:

      @木本无心
      很简单的sql

  4. 小托 says:

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

    1. zwwooooo says:

      @小托
      谢谢您的支持 :mrgreen:

  5. 小邪 says:

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

    1. zwwooooo says:

      @小邪
      这。。。帝。。。不敢当啊

  6. zigbee says:

    确实能折腾。 :mrgreen:

    1. zwwooooo says:

      @zigbee
      没办法啊,如博客副标题一样

  7. 竹下无为梦 says:

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

    1. zwwooooo says:

      @竹下无为梦
      一般博主都用不上

  8. 优趣 says:

    神马情况下会用到?

    1. zwwooooo says:

      @优趣
      多用户时

  9. 猪八戒 says:

    我的press还有待研究。

  10. 枯木 says:

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

    1. zwwooooo says:

      @枯木
      好吧,谢谢支持。

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

    1. Ronghai says:

      @颖佳论坛
      点号是加好."'" 名字是字符串, 所以要用单引号('). 这个是sql的范围

    2. zwwooooo says:

      @颖佳论坛
      如 Ronghai 回复所说

  12. 没有现成的对外接口?

    1. zwwooooo says:

      @世纪之光
      有的话就不需要这么蛋疼了,起码我和几个主题作者都没找到。

  13. 求索阁 says:

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

    1. zwwooooo says:

      @求索阁
      没试过,知道有密码,你试试设置为私人的

  14. asunchou says:

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

    1. zwwooooo says:

      @asunchou
      英文ok的话,还是直接看wp codex吧

  15. emric says:

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

  16. emric says:

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

    1. zwwooooo says:

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

  17. feiyang says:

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

    1. zwwooooo says:

      @feiyang
      可以看看读者墙代码

  18. qinnek says:

    请问怎么通过邮箱获取id

    1. zwwooooo says:

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

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

回复给 zigbee ¬
取消回复

昵称 *

网址

B em del U Link Code Quote