在存档或作者页面中显示作者角色

时间:2012-05-29 作者:pixelngrain

我想在循环外的存档和作者页上显示作者角色我在堆栈溢出上找到了这段代码,它在循环内运行良好

function get_author_role()
{
    global $authordata;

    $author_roles = $authordata->roles;
    $author_role = array_shift($author_roles);

    return $author_role;
}
在模板中使用以下代码

echo get_author_role()
但当我将此添加到存档和作者页面时,它会给我发出警告消息

Warning: array_shift() expects parameter 1 to be array, null given in
如何解决这个问题?

1 个回复
SO网友:fuxia

$authordata 在设置第一个帖子之前不可用(在第一个帖子之前the_post();).

但是您需要的所有数据都已经存在于作者存档中:inget_queried_object().

这是一个WP_User Object 在作者档案中。

print \'<pre>\' . htmlspecialchars( print_r( get_queried_object(), TRUE ) ) . \'</pre>\';
结果:

WP_User Object
(
    [data] => stdClass Object
        (
            [ID] => 2
            [user_login] => toscho
            [user_pass] => $P$BO6.B4TIhxnKspIlxXHJCqa.M4I3v01
            [user_nicename] => toscho
            [user_email] => [email protected]
            [user_url] => 
            [user_registered] => 2011-12-25 15:20:12
            [user_activation_key] => 
            [user_status] => 0
            [display_name] => toscho
        )

    [ID] => 2
    [caps] => Array
        (
            [author] => 1
        )

    [cap_key] => test_capabilities
    [roles] => Array
        (
            [0] => author
        )

    [allcaps] => Array
        (
            [upload_files] => 1
            [edit_posts] => 1
            [edit_published_posts] => 1
            [publish_posts] => 1
            [read] => 1
            [level_2] => 1
            [level_1] => 1
            [level_0] => 1
            [delete_posts] => 1
            [delete_published_posts] => 1
            [author] => 1
        )

    [filter] => 
)
因此,这将打印当前作者的第一个角色:

! empty ( get_queried_object()->roles )
    and print ucfirst( get_queried_object()->roles[0] );

结束

相关推荐

如何在_Author_meta(‘Description’)中显示<a>标签属性Target;

我面临以下问题:假设用户已使用标记和target \\u blank属性将其推特id粘贴到“Biographical info”文本区域中,但结果为\\u author\\u meta(\'描述\');丢弃了标记的属性目标\\u为空。有什么解决方案吗?谢谢