• 赤色のリンクは、まだ日本語Codexに存在しないページ・画像です。英語版と併せてご覧ください。(詳細

このWikiはいつでも誰でも編集できます

投稿者テンプレート

提供: WordPress Codex 日本語版
Author Templatesから転送)
移動先: 案内検索

はじめに

WordPress テーマ のサポート以来 WordPress サイトのデザインや機能は簡単に変えられるようになりました。たとえばユーザーが投稿の作成者リンクをクリックすると、デフォルトでは作成者の投稿のリストを時系列に、先頭の新着記事から古いものを下へと並べたページに移動します。この表示には、投稿全体を表示するか抜粋だけか、どの追加情報(タイトル、カテゴリー、公開日、最終更新日等)を表示するかなど、様々な選択肢があります。テーマはそれぞれ異なる表示方法を選択していて、ユーザーはこれを変えられます。

ここではユーザーがサイトの作成者ページにアクセスした際の表示を変更する方法について解説します。変更にはテーマおよびテンプレートファイルを使用します。このためテンプレートファイルの初心者はまず テーマの使い方 および テンプレート入門 を参照してください。

作成者ページのデザインの変更には多くの方法があります。中には作成者ページに固有でないもの、たとえばページの先頭へのテキストの追加などもありますが、このような単純な変更については カテゴリーテンプレート を参照してください。ここでは作成者テンプレートファイルに固有の変更にフォーカスします。

基本

投稿から作成者ページヘのリンク

作成者ページを使用する場合、まずは最初に表示された投稿の中に、作成者ページヘのリンクを含めたいでしょう。このリンクを生成するにはループ内で [[テンプレートタグ/the_author_posts_link|the_author_posts_link] テンプレートタグを使用します。たとえば

<p>作成者 
<?php the_author_posts_link(); ?></p>

リンク付きの作成者リスト

作成者ページへのリンクを生成するにはサイドバー(またはテーマ内のどこか)に作成者のリストを作成する方法もあります。これには wp_list_authors テンプレートタグを使用します。サイドバーテンプレートファイルに以下のコードを挿入してください。

<h2>作成者リスト:</h2>
<ul>
<?php wp_list_authors(); ?>
</ul>

作成者リストの表示方法を変更するには wp_list_authors() の引数を使用します。たとえば管理者アカウント (ユーザー名 "admin") はデフォルトでは除外されていますが、以下の方法で表示するよう wp_list_authors() に強制できます。

<ul>
<?php wp_list_authors('exclude_admin=0'); ?>
</ul>

また引数は組み合わせられます。デフォルトでは投稿のない作成者は表示されませんが、以下の例では、管理者を含むすべての作成者(ユーザー)が表示されます。

<ul>
<?php wp_list_authors('exclude_admin=0&hide_empty=0'); ?>
</ul>

他のオプションについての詳細は wp_list_authors を参照してください。

どのテンプレートファイルが使用されるか?

作成者ページヘのリンクを作成しましたので、次に作成者ページのデザインを変更します。これには現在のテーマの中でどのファイルを使用して投稿が表示されるかを知る必要があります。この使用のルールはテンプレート階層と呼ばれます。

作成者の場合、階層はとてもシンプルです。テンプレート階層の規定では、WordPress は現在のテーマディレクトリ内を以下の順番で検索し、最初に 見つかったテンプレートファイルを使用します:

  1. author-{nicename}.php - 作成者の nicename が rami であれば WordPress は author-rami.php を探します。
  2. author-{id}.php - 作成者の ID が 6 であれば WordPress はauthor-6.php を探します。
  3. author.php
  4. archive.php
  5. index.php

すなわち author.php ファイルがなければ、WordPress は archive.php を探し ...、と続きます。

したがって作成者ページのデザインを変える場合 author.php がなければ作成する必要があります。それには archive.php があればこれをコピーして作成できますし、これもなければ index.php をコピーします。以下では author.php を編集していると仮定します。

作成者情報のカスタマイズ

この節では作成者ページに名前、略歴、連絡先など作成者情報を追加する方法について説明します。

作成者情報の設定

作成者ページ上に作成者の情報を表示するには、まず最初に作成者テンプレートファイル (author.php 前節参照) を編集し、表示すべき作成者を特定し、データベースから作成者のすべての情報 (WordPress のユーザー管理画面で入力された情報) を取得します。

これには変数 $curauth (Current Author(現在の作成者) の略) を設定します。通常は以下の行をテンプレートファイルの ループ の前に挿入します。

<?php 
$curauth = (isset($_GET['author_name'])) ? get_user_by('slug', $author_name) : get_userdata(intval($author));
?>

上のコードが動作しない場合、クエリを受信し、$curauth の値を割り当てる別の方法もあります。たとえば WordPress Version 2.8 以降であれば次のコードが使用できます。

<?php
$curauth = (isset($_GET['author_name'])) ? get_user_by('slug', $_GET['author_name']) : get_userdata($_GET['author']);
?>

または次のコードを使用できます。こちらも WordPress Version 2.8 以降でのみ動作します。

<?php
$curauth = (get_query_var('author_name')) ? get_user_by('slug', get_query_var('author_name')) : get_userdata(get_query_var('author'));
?>

どちらも失敗するようであれば WordPress 1.5 以降で利用可能な別の方法があります。

<?php
global $wp_query;
$curauth = $wp_query->get_queried_object();
?>

作成者情報の使用

変数 $curauth が設定できましたので、これを使用して作成者に関するすべての情報を作成者ページに表示できます。たとえば作成者のニックネームを含め、「Joe のページ」として表示する場合、次のコードを使用します。

<p><?php echo $curauth->nickname; ?> のページ</p>

注意: テンプレートファイルの中で上のコードを、前節で紹介した $curauth の定義の「後」、そしてループ の「前」に置く必要があります。

作成者のニックネーム以外にも、多くの作成者情報を表示できます。以下は WordPress のユーザー編集画面で定義される情報の一覧です。

  • $curauth->aim;
  • $curauth->description;
  • $curauth->display_name;
  • $curauth->first_name;
  • $curauth->ID;
  • $curauth->jabber;
  • $curauth->last_name;
  • $curauth->nickname;
  • $curauth->user_email;
  • $curauth->user_login;
  • $curauth->user_nicename;
  • $curauth->user_registered;
  • $curauth->user_url;
  • $curauth->yim;

これらの作成者情報も上のニックネームの例と同様に動作します。たとえば以下の例では、作成者の表示名とプロフィール情報(ユーザー管理画面での「ユーザーについて」のテキスト)を表示します。

<p><?php echo $curauth->display_name; ?><br />
<?php echo $curauth->description; ?></p>

テンプレートファイルのサンプル

以下は完全な author.php ファイルの例です。

<?php get_header(); ?>

<div id="content" class="narrowcolumn">

<!-- $curauth 変数の設定 -->

    <?php
    $curauth = (isset($_GET['author_name'])) ? get_user_by('slug', $author_name) : get_userdata(intval($author));
    ?>

    <h2>作成者: <?php echo $curauth->nickname; ?></h2>
    <dl>
        <dt>Web サイト</dt>
        <dd><a href="<?php echo $curauth->user_url; ?>"><?php echo $curauth->user_url; ?></a></dd>
        <dt>プロフィール</dt>
        <dd><?php echo $curauth->user_description; ?></dd>
    </dl>

    <h2><?php echo $curauth->nickname; ?> の投稿:</h2>

    <ul>
<!-- ループ -->

    <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
        <li>
            <a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link: <?php the_title(); ?>">
            <?php the_title(); ?></a>,
            <?php the_time('Y年n月j日'); ?> (カテゴリー: <?php the_category('&');?>)
        </li>

    <?php endwhile; else: ?>
        <p><?php _e('この作成者の投稿はありません。'); ?></p>

    <?php endif; ?>

<!-- ループ終了 -->

    </ul>
</div>
<?php get_sidebar(); ?>
<?php get_footer(); ?>

追加の情報

関連

テンプレート階層: カテゴリーテンプレート, タグテンプレート, タクソノミーテンプレート, ページテンプレート, 投稿タイプテンプレート, 投稿者テンプレート, 日付テンプレート, 検索テンプレート, 404 テンプレート, 添付ファイルテンプレート, ループテンプレート /en


関数リファレンステンプレートタグ目次もご覧ください。


最新英語版: WordPress Codex » Author_Templates最新版との差分