我正在我的第一个 WP 网站上工作,需要在他们的帖子旁边显示作者的角色。像“吉米|管理员”。查看可用的作者元数据:http ://codex.wordpress.org/Function_Reference/the_author_meta并没有给我访问它的方法。我敢肯定有一个快速简单的方法来做到这一点,我只是不知道!谢谢!
问问题
9166 次
1 回答
16
更新:把它放在你的functions.php文件中:
function get_author_role()
{
global $authordata;
$author_roles = $authordata->roles;
$author_role = array_shift($author_roles);
return $author_role;
}
然后在您的 Wordpress 循环中调用它。所以:
<?php
if(have_posts()) : while(have_posts()) : the_post();
echo get_the_author().' | '.get_author_role();
endwhile;endif;
?>
...将打印:'Jimmy | 行政人员'
完整答案:用户对象本身实际上存储角色和其他类型的有用信息。如果您想要更多通用函数来检索任何给定用户的角色,只需传入您要使用此函数定位的用户的 ID:
function get_user_role($id)
{
$user = new WP_User($id);
return array_shift($user->roles);
}
如果你想获取给定帖子的作者,可以这样称呼它:
<?php
if(have_posts()) : while(have_posts()) : the_post();
$aid = get_the_author_meta('ID');
echo get_the_author().' | '.get_user_role($aid);
endwhile;endif;
?>
对最后评论的回应:
如果您需要在 Wordpress 循环之外获取数据(我想您正在尝试在存档和作者页面上执行此操作),您可以使用我的完整答案中的函数,如下所示:
global $post;
$aid = $post->post_author;
echo get_the_author_meta('user_nicename', $aid).' | '.get_user_role($aid);
这将以“用户|角色”格式输出您想要的信息。
于 2012-05-07T21:18:01.877 回答