2014-09-26 88 views

回答

2

只需用几行代码,你会发现结果:

<?php 
    global $wpdb; 
    $users = $wpdb->get_results("SELECT user_email FROM $wpdb->users WHERE display_name = 'your_user_display_name'"); 
    $required_user_email = $users[0]->user_email; 
    echo $required_user_email; 
?> 

只是替换 'your_user_display_name'显示您想要获取电子邮件的用户名称

+0

谢谢它的工作。 – 2014-09-26 10:02:07

+0

尽管WordPress数据库结构稳定,但发出“直接”查询可能会导致未来的问题。用户操作具有特定的API。我强烈建议使用['WP_User_Query'类](http://codex.wordpress.org/Class_Reference/WP_User_Query) – PauloASilva 2014-09-26 10:39:40

+0

稍微简单一点: '$ required_user_email = $ wpdb-> get_var(“SELECT user_email FROM $ wpdb-> users WHERE display_name ='your_user_display_name'“);' – 2017-03-07 13:35:06

-2

尝试get_user_by($field,$value) function

<?php $user = get_user_by('display_name', 'John Doe'); ?> 

这可能是危险的,因为显示的名字是不是唯一的!

编辑

您还可以使用class WP_User_Query

$query = new WP_User_Query(array(
    'search' => 'John Doe', 
    'search_columns' => array('user_login', 'user_nicename'), 
)); 

// User Loop 
if (empty($query->results)) 
    throw new Exception('no user found'); 

foreach ($query->results as $user) 
    echo $user->email,PHP_EOL; 
+0

但我想通过显示名称获取所有用户的电子邮件。 – 2014-09-26 08:07:45

+0

@RahulVaghela好的,你可以使用'get_user_by'函数。 当然,你必须迭代结果集和获取电子邮件地址(一个'while'循环,很容易) – PauloASilva 2014-09-26 08:09:21

+1

没有'get_user_by('display_name',...)' – 2017-03-07 13:20:50

相关问题