4

私は最初のWPサイトで作業しており、投稿の横に作成者の役割を表示する必要があります。「ジミー|管理者」のようなもの。利用可能な著者のメタデータを見る:http ://codex.wordpress.org/Function_Reference/the_author_metaは私にそれにアクセスする方法を与えません。私はこれを行うための迅速で簡単な方法があると確信しています、そして私はそれを知らないだけです!! ありがとう!

4

1 に答える 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;
?>

...印刷されます:'ジミー| 管理者」

完全な回答:ユーザーオブジェクト自体は、実際にはロールやその他の種類の有用な情報を格納します。より一般的な関数で特定のユーザーの役割を取得する場合は、この関数でターゲットにするユーザーの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 に答える