2026年6月23日
2026年6月23日
WordPressのauthor.phpで著者ページをカスタマイズ
はじめに
WordPressでサイトを運用する際に、著者のプロフィールや投稿一覧を個別に表示することは一般的な機能の一つです。この記事では、そのようなカスタマイズを行うためにauthor.phpファイルを使用し、独自の著者ページを作成する方法について解説します。
WordPressは非常に柔軟性が高く、デフォルトテーマでも多くのカスタマイズが可能です。しかし、特定のニーズに応えるためには、さらに細かい調整が必要な場合があります。例えば、サイトのデザインと一貫性を持たせるために著者ページを独自にカスタマイズする必要があるかもしれません。
症状・背景
- デフォルトの著者ページがサイト全体のデザインと異なる
- 著者のプロフィール情報や投稿リストを独自に表示したい
- サイト訪問者が特定の著者の情報を簡単に見つけられるようにする必要がある
- 他のユーザーとの比較や参照として、個々の著者の貢献度を見せる必要がある
手順・設定方法
ステップ1: author.phpファイルを作成または編集する
# WordPressテーマ内の「author」ディレクトリに移動します。
cd wp-content/themes/your-theme/author/
# 現在のauthor.phpファイルが存在しない場合は新規作成します。
touch author.php
ステップ2: データベースから著者情報と投稿リストを取得する
# 著者のID(「%author_id%」)を使ってデータベースから情報を取得します。
$author_id = get_query_var( 'author' );
$author_info = get_userdata( $author_id );
# 著者のプロフィール画像や名前、エイリアスを表示します。
echo '<img src="' . esc_url( get_avatar_url( $author_id ) ) . '" alt="' . esc_attr( $author_info->display_name ) . '">';
echo '<h2>' . esc_html( $author_info->display_name ) . '</h2>';
echo '<p>Username: ' . esc_html( $author_info->user_login ) . '</p>';
# 著者の投稿リストを取得します。
$posts = get_posts(array(
'numberposts' => -1,
'offset' => 0,
'category' => '',
'orderby' => 'post_date',
'order' => 'DESC',
'include' => array(),
'exclude' => array(),
'meta_key' => '',
'meta_value' => '',
'post_type' => 'post',
'post_status' => 'publish'
));
# 投稿一覧を表示します。
foreach ($posts as $post) {
echo '<article>';
echo '<h3><a href="' . esc_url( get_permalink($post->ID) ) . '">' . esc_html(get_the_title($post->ID)) . '</a></h3>';
echo '<p>' . wp_trim_words(strip_tags(get_the_content()), 15, '...') . '</p>';
echo '</article>';
}
ステップ3: CSSとJavaScriptでデザインを調整する
# author.cssファイルを作成し、著者ページのスタイルをカスタマイズします。
touch wp-content/themes/your-theme/css/author.css
# 著者の画像やプロフィール情報のレイアウトを調整します。
.author img {
width: 150px;
height: auto;
}
.author h2 {
margin-top: 10px;
font-size: 24px;
}
# 投稿一覧のスタイルをカスタマイズします。
.post-list article {
background-color: #f9f9f9;
border-radius: 5px;
padding: 15px;
margin-bottom: 20px;
}
ステップ4: カスタムフィールドを使用して情報を追加する
# author.phpでカスタムフィールドの情報を取得します。
$custom_fields = get_post_custom($author_id);
echo '<p>About me: ' . esc_html( $custom_fields['about_me'][0] ) . '</p>';
注意事項
- カスタマイズを行う際は必ずバックアップを取ってから実施してください。
- パフォーマンスに影響を与えないよう、不要な情報を取得しないように注意しましょう。
- セキュリティ上の理由で、ユーザー情報の表示にはesc_htmlやesc_url関数を使用すること。
まとめ
1. author.phpの作成: 著者ページをカスタマイズするためのファイルを作成します。
2. データベースからの情報を取得: 著者のプロフィールと投稿リストを取得し表示します。
3. CSSとJavaScriptを使用してデザイン調整: 設定した情報を美しく表示するためにCSSとJavaScriptを利用します。
4. カスタムフィールドの活用: 追加の情報が必要な場合は、カスタムフィールドを利用して情報を追加できます。
関連記事: