ワードプレスでは、テーマに[author.php]を用いると、ユーザーアカウント事の記事の一覧ページを作成することができます。[author.php]は、アーカイブページの分類に入りますので、[author.php]が無い場合は[archive.php]が反映されます。
ユーザー名を表示するときは、テンプレートタグの[the_author()]や[get_the_author()]を用いて取得・表示することができますが、[author.php]で使用すると、ユーザー名が表示されないということがありませんか?
[the_author()]や[get_the_author()]はループ内でのみ使用できるため、[author.php]のループ外に記述した場合は、ユーザー名が表示されません。
[author.php]
the_author(); /* ループ外では何も表示されません */ while ( have_posts() ) : the_post(); the_author(); /* ループ内では各記事の作成者としてユーザ名が表示されます */ endwhile;
[author.php]のループ外でユーザー名を表示したい場合は、テンプレートタグの[the_author_meta()]を使用することで取得・表示することができます。
[the_author_meta(‘フィールド名’,ユーザーID)]というように、フィールド名とユーザーIDを指定することで特定のユーザー情報を参照することが可能になります。
[author.php]では、[$author]にユーザーIDが格納されているので、以下のようにしてユーザー情報を取得することができます。
[author.php]
/* ユーザーの表示名を表示 */ the_author_meta( 'display_name', $author);
表示をせずに、変数に取得した情報を格納する場合は、、テンプレートタグの[get_the_author_meta()]を使用します。
[author.php]
/* ユーザーの表示名を取得 */ $user_name = get_the_author_meta( 'display_name', $author );