我希望wordpress给我一个包含所有作者的数组。有一些愚蠢的函数,它们回显html(wp_list_authors()) - 但这不是我想要的。
我想获得完整的个人资料(ID,姓名,元数据)。
我目前的方法不是,我正在寻找 - 确切地说,它是**。
$authors = wp_list_authors(array(
'optioncount' => false,
'exclude_admin' => false,
'show_fullname' => false,
'hide_empty' => false,
'echo' => false,
'html' => false)
);
$authors = explode(", ", $authors);
即使在这里,我也被困住了,因为没有get_author_id_by_name()或类似的东西。
请帮助,我不想在friggin模板中执行SQL。
答案 0 :(得分:1)
好吧,如果您知道用户ID,则可以使用get_userdata。
否则你应该看一下这个建议: http://wpengineer.com/list-all-users-in-wordpress/
答案 1 :(得分:1)
如果有人仍然在寻找,这就是你如何以正确的方式将作者以数组的形式返回。
function get_all_authors() {
global $wpdb;
foreach ( $wpdb->get_results("SELECT DISTINCT post_author, COUNT(ID) AS count FROM $wpdb->posts WHERE post_type = 'post' AND " . get_private_posts_cap_sql( 'post' ) . " GROUP BY post_author") as $row ) :
$author = get_userdata( $row->post_author );
$authors[$row->post_author]['name'] = $author->display_name;
$authors[$row->post_author]['post_count'] = $row->count;
$authors[$row->post_author]['posts_url'] = get_author_posts_url( $author->ID, $author->user_nicename );
endforeach;
return $authors;
}
返回的数组($authors
)包含用户的ID作为键,还包含作者链接,帖子计数及其名称。当然,在您的主题视图中,您可以将get_all_authors()
设置为变量,然后根据您的喜好循环。
希望这有帮助!
答案 2 :(得分:0)
您最好使用get_users
,它位于codex。
答案 3 :(得分:-1)
global $wpdb;
$allAuthorIds = $wpdb->get_column( "SELECT ID FROM {$wpdb->users}" );
$authorsInfo = array();
foreach( $allAuthorIds as $authorId ) {
$authorsInfo[$authorId] = get_userdata($authorId);
}
这将为$ authorsInfo数组中的每个用户(包括WP扩展信息)提供信息。如果您需要按用户角色(“作者”)获取用户,那么您应该使用WP_User_Search类。你几乎被迫在这里使用SQL而且没有任何问题。