$args = array(
'orderby' => 'display_name'
);
$wp_user_query = new WP_User_Query($args);
$authors = $wp_user_query->get_results();
if (!empty($authors))
{
echo '<ul>';
foreach ($authors as $author)
{
$author_info = get_userdata($author->ID);
echo '<li>'.$author->ID.' '.$author_info->first_name.' '.$author_info->last_name.'</li>';
}
echo '</ul>';
} else {
echo 'No authors found';
}
我正在使用帖子作者的帖子过滤器。上面的代码显示所有用户只需要显示在博客中发布的作者。
就像wp_list_authors()函数一样,但我需要获取作者姓名的作者id intead。因为我需要创建一个下拉列表。当有人更改选项时,我需要在AJAX中获得该作者的帖子
答案 0 :(得分:1)
希望这有帮助:
$posted = get_posts([
'post_type' => 'your_custom_post_type',
]);
$author_ids = [];
foreach ($posted as $post) {
$author_ids[] = $post->post_author;
}
$author_ids = array_unique($author_ids);
if (!empty($author_ids) )
{
echo '<ul>';
foreach ($author_ids as $user_id)
{
$author_info = get_userdata($user_id);
echo '<li>'.$user_id.' '.$author_info->first_name.' '.$author_info->last_name.'</li>';
}
echo '</ul>';
} else {
echo 'No authors found';
}
请务必将post_type
更改为您的帖子类型,并且每个用户同时拥有first_name
和last_name
。
Codex参考文献缺少一个论点:has_published_posts
。
$args = [
'orderby' => 'display_name',
'has_published_posts' => true
];
$authors = new WP_User_Query($args);
...
最好查找内部类文件,因为Codex上的信息并不总是最新的。