从wpdb-作者/用户目录页面选择

时间:2013-03-03 作者:730wavy

我正在wordpress网站上工作,在那里我创建了一个目录页面(authors.php),其中列出了所有用户和特定的作者元。

它工作得很好,但我正试图找出如何只显示填写了所需作者元的用户。

我尝试了很多不同的事情,但都没有达到我所需要的。这是我的密码

<?php
    $order = \'user_nicename\';
$users = $wpdb->get_results("SELECT * FROM $wpdb->users ORDER BY $order"); // query users

    foreach($users as $user) : // start users\' profile "loop"
    ?> 
我尝试的其他方法都不会返回任何结果。有没有办法只选择填写了特定作者元字段的用户?非常感谢您的帮助,谢谢。

1 个回复
最合适的回答,由SO网友:chrisguitarguy 整理而成

你最好使用get_users 返回

<?php
// get all users, regardless of roll.  If you do need to restrict by
// role you can use the `role` argument: get_users(array(\'role\' => \'author\'));
$uses = get_users(array(\'orderby\' => \'nicename\'));

foreach ($users as $user) {
   // do stuff with $user, will have all the usual stuff, ID, user_email, etc
   echo \'<p>\', esc_html($user->ID), \'</p>\';
}
或者,您可以使用all_with_meta 的参数fields 的参数get_users 并获取WP_User 对象返回:

<?php

$users = get_users(array(\'fields\' => \'all_with_meta\'));

foreach ($users as $user) {
   // $user will be a WP_User object.
}
有没有办法只选择填写了特定作者元字段的用户?

您也可以通过“获取用户”来实现这一点!只需使用meta_query 参数,看起来与WP_Query\'s meta_query argument.

<?php
$users = get_users(array(
    \'meta_query\' => array(
        array( 
            \'key\'   => \'whatever_your_meta_key_is\',
            \'value\' => \'the_meta_value_you_want\',
        )
     ),
));

foreach ($users as $user) {
    // do stuff with $user
}

结束

相关推荐

插件生成了%x个字符的意外输出,未定义$wpdb

我编写了一个简单的Wordpress插件来创建一个新的数据库表。应该在插件激活时创建新表。当我尝试激活插件时,出现以下错误:The plugin generated 3989 characters of unexpected output during activation. If you notice “headers already sent” messages, problems with syndication feeds or other issues, try deactivating or