【问题标题】:how to get all user_nicename from wp_users table in wordpress?如何从 wordpress 中的 wp_users 表中获取所有 user_nicename?
【发布时间】:2018-08-16 12:06:11
【问题描述】:

我这里有这个功能:

function displaymeta(){
        global $post;
        global $wpdb;
        $authors = $wpdb->get_results("select id,user_nicename from $wpdb->users");
        foreach($authors as $auth){
                $authorname = get_the_author_meta('user_nicename',$auth->ID);
                echo $authorname;
        }
}
add_filter( 'the_content', 'displaymeta' );

它应该从数据库中的 wp_users 表中检索所有 user_nicename。但是当我执行这段代码时,我只得到了第一个用户名两次,即使有两个不同的用户。我在这里想念什么?谢谢!

更新 我需要做这样的事情:

 $arr=array();
 global $wpdb;
 $authors = $wpdb->get_results("SELECT ID, user_nicename from $wpdb->users 
                                ORDER BY display_name");
 foreach($authors as $auth)
 {
    $arr[]=get_author_meta('user_nicename', $auth->ID);
 }

我想将 user_nicename 存储在 wp_users 表中所有用户的数组中。

【问题讨论】:

    标签: php sql database wordpress


    【解决方案1】:

    你可以这样做很简单:

    $users = get_users();
    foreach($users as $user) {
        echo $user->user_nicename;
    }
    

    更多信息在这里 -> https://codex.wordpress.org/Function_Reference/get_users

    如果你只是想要一个只有 user_nicenames 的数组,你可以这样做:

    global $wpdb
    
    $user_nicenames = $wpdb->get_results("SELECT user_nicename FROM {$wpdb->prefix}users", ARRAY_A);
    
    foreach($user_nicenames as $nice_name) {
        echo $nice_name;
    }
    

    【讨论】:

    • 但是如何将这些用户名存储在数组中?我想将它们中的每一个与另一个数组进行比较。这就是为什么我需要将它们存储在一个数组中。
    • 数组应该是什么样子的?因为您基本上得到了一个包含用户对象的数组,如果您愿意,可以使用它与另一个数组进行比较。
    • 数组应该只包含 wp_users 表中所有用户的 user_nicename。
    • 我更新了我的答案以接收一个关联数组,其中只有 user_nicenames 以及如何遍历它们。
    • 完美!非常感谢!祝你有美好的一天@berend!
    猜你喜欢
    • 2017-06-20
    • 1970-01-01
    • 2017-09-02
    • 1970-01-01
    • 1970-01-01
    • 2018-08-15
    • 1970-01-01
    • 2017-02-10
    • 2016-07-05
    相关资源
    最近更新 更多