WordPressでテーマを自作するときに必要なphpファイル
最低限必要なファイル
WordPressでウェブサイトを表示するために最低限必要なファイルは、index.phpとstyle.cssです。この2つのファイルがあればWordPressを動作させることができます。
しかし、カテゴリの一覧ページと単体の記事を表示するページは記述が異なります。index.phpだけだとそういったケースに対応することが難しくなるため、WordPressでは表示内容の種類によってphpファイルを用意することができます。
ホームページ(フロントページ)
index.php
index.phpは該当するphpファイルがない場合に、代替として使われます。最低限必要なファイルの一つです。
home.php
トップページ用のphpファイルです。トップページはほかのページと違う配置の内容にしたい場合には、home.phpを設定します。
front-page.phpとの違いは、「設定」→「表示設定」で「フロントページの表示」を「固定ページ」にして、「フロントページ」の設定をしていない場合に、home.phpが適用されます。
固定ページをトップページに用意するつもりがない場合には、home.phpを用意した方がいいでしょう。
front-page.php
「設定」→「表示設定」→「フロントページの表示」で「フロントページ」を設定している場合に適用されます。フロントページの指定をしていない場合には、home.phpがあればそれが適用されます。
個別投稿ページ(単一記事)
index.php
singular.phpの設定をしていない場合には、index.phpが適用されます。
singular.php
single.php(記事を表示するファイル)とpage.php(固定ページを表示するファイル)をsingular.phpにまとめることができます。single.phpもpage.phpも単一の記事を表示するためのファイルなので、同じ記述になる場合には、singular.phpを使用します。
必要に応じて用意しましょう。single.php、page.phpそれぞれを異なるデザインにしたい場合には、singular.phpを用意する必要はありません。
single.php
単一記事を表示するphpです。ユーザが最終的に読む記事ページのデザインを決めるphpなので、なるべく設定しましょう。
single-$posttype.php
ポストタイプとは、投稿した記事の種類のことです。既定のポストタイプには、postとpageがあります。postは投稿ページ、pageは固定ページの記事です。このほか、任意のポストタイプを設定した場合には、そのポストタイプをハイフンの後につなげることで、適用させることができます。
固定ページ
index.php
singular.phpがない場合に適用されます。
singular.php
page.phpがない場合に適用されます。
page.php
page-$id.phpがない場合に適用されます。固定ページを統一のデザインにしたい場合には、page.phpを用意します。
page-$id.php
固定ページの中でも特定のIDのページごとにデザインをわけたい場合には、page-$id.phpを用意します。
page-$slug.php
固定ページの中でも特定のスラッグごとにデザインをわけたい場合には、page-$slug.phpを用意します。
カテゴリページ
paged.php
archive.phpがなく、かつis_paged()がtrueの場合に適用されます。使い道としてはリストページの最初のページと2ページ目とで表現を変えたい場合などです(1ページ目に説明文を表示し、2ページ目以降は非表示にするなど)。
2ページ目を変更する表現はphpで設定することも可能なので、paged.phpを設定する必要はあまりないかもしれません。
archive.php
category.phpがない場合に適用されます。
category.php
カテゴリを選択したときに適用されるphpファイルです。通常、カテゴリごとにデザインを変える必要がなければ、category.phpを設定しておけばいいでしょう。
比較的利用頻度の高いphpファイルです。
category-$id.php
特定のカテゴリにのみ適用されるphpファイルです。カテゴリのIDは、「投稿」→「カテゴリ」から、任意のカテゴリをクリックして、URL欄の「tag_ID=数字」の数字です。この数字が例えば1ならば、category-1.phpと書きます。
特定のカテゴリにのみ適用させたい場合にはこのphpファイルを用意しましょう。例えば、カテゴリトップページに、それぞれのカテゴリの説明文を表示しておきたい場合には、idごとにphpファイルを用意する必要性が生じます。
特定のカテゴリではなく、どのカテゴリを表示しても同じテンプレートにしたい場合は、category.phpを設定します。
category-$slug.php
カテゴリーのうち、特定のスラッグに対して適用されます。
タグ表示
index.php
archive.phpがない場合に適用されます。
archive.php
tag.phpがない場合に適用されます。
tag.php
tag-$id.php
タグを設定した場合に、タグにはidが割り当てられます。このid番号を「tag-」のあとにつけたphpファイルは、そのタグを表示したときのみ適用されます。
tag-$slug.php
スラッグとは、投稿した記事やカテゴリに対して、その記事の任意のURLを設定した際の文字列のことです。例えばtextという文字列ならば、tag-text.phpとなります。
カスタム分類表示
index.php
archive.phpがない場合に適用されます。
archive.php
taxonomy.phpがない場合に適用されます。
taxonomy.php
taxonomyとは分類のことです。通常、分類には「固定ページ」「投稿ページ」がありますが、これにオリジナルのカテゴリを追加したものをタクソノミーといいます。タクソノミー自体はテーマ内において自分で設定したりプラグインを使わないと設定することはできません。
タクソノミーを設定している場合、taxonomy.phpがあれば、カスタムタクソノミーを設定したページに適用されます。
taxonomy-$taxonomy.php
自作したカスタムタクソノミーの分類ごとにテンプレートを使用したい場合には、分類した名称を「taxonomy-」のあとに続けたphpファイルを作成すると、適用されます。
taxonomy-$taxonomy-$term.php
カスタムタクソノミーにはさらに、タグを設定することができます。その場合には、「taxonomy-タクソノミー名-タグ名.php」というphpファイルがあれば、適用されます。
カスタム投稿タイプ表示
index.php
archive.phpがない場合に適用されます。
archive.php
archive-$posttype.phpがない場合に適用されます。
archive-$posttype.php
$posttypeとは、投稿タイプのことです。投稿タイプとは、投稿記事の種類のことで、通常の投稿の投稿タイプは、post、固定ページはpage、添付ファイルはattachmentといったものがあります。
この投稿タイプを「archive-」のあとに記載したphpファイルは、アーカイブのインデックスページの表示の際に、該当の投稿タイプである場合に適用されます。
作成者表示
index.php
archive.phpがない場合に適用されます。
archive.php
author.phpがない場合に適用されます。
author.php
WordPressでは記事を投稿したユーザー別に、記事一覧を表示することができます。投稿者のアーカイブページを表示するリンクをクリックした場合に適用されるのが、author.phpです。
なお、投稿者のアーカイブページへのリンクを表示するには、<?php the_author_posts_link(); ?>とします。
また、複数の投稿者がいる場合、リストで全投稿者のアーカイブページへのリンクを表示するには、<?php wp_list_authors(); ?>と書きます。
author-$id.php
ユーザーを複数設定している場合には、そのユーザーごとにIDが割り振られています。そのIDを割り付けた、author-[id].phpを用意しておくと、そのユーザーの記事一覧を表示するときに適用されます。
author-$nicename.php
nicenameとはユーザーに割り当てたニックネームのことです。ニックネームがedyだった場合には、author-edy.phpというphpファイルを用意しておけば、edyの投稿記事アーカイブページを表示するときに適用させることができます。
日付別表示
index.php
archive.phpがない場合に適用されます。
archive.php
date.phpがない場合に適用されます。
date.php
カレンダーなどの日付をクリックしたときに表示される日付アーカイブのためのphpです。
カレンダーを表示するのであれば、用意しておいたほうがいいでしょう。
検索結果表示
index.php
search.phpがない場合に適用されます。
search.php
検索結果を表示するphpファイルです。
検索結果を表示するためには特別にコードを書く必要があるため、search.phpは別途用意しておきたいファイルの一つです。
エラー表示
index.php
404.phpがない場合に適用されます。
404.php
404エラー表示される(そのページがない)場合に表示するphpファイルです。404.phpをあらかじめ用意しておくことで、エラーページも同じテーマで表すことができます。
用意しておきたいphpファイルです。
添付ファイル表示
index.php
singular.phpがない場合に適用されます。
singular.php
single.phpがない場合に適用されます。
single.php
attachment.phpがない場合に適用されます。
attachment.php
WordPressでは、WordPress内に追加した画像やメディアファイルは、個別のページとして表示することができます。attachment.phpはその個別ページを表示する際に適用されるファイルです。
$mimetype-$subtype.php
個別の添付ファイルページを表示する際に、その添付ファイルのMIMEタイプによって適用するphpファイルを分けることができます。
MIMEタイプとは、text/plain、text/html、text/xml、text/javascript、text/vbscript、text/css、image/gif、image/jpeg、image/png、application/x-httpd-cgi、application/msword、application/pdfなどです。
スラッシュの前が$mimetypeで後が$subtypeを示します。
$subtype.php
個別の添付ファイルページを表示する際に、MIMEタイプのサブタイプのみを対象として適用させることができるphpファイルです。
$mimetype.php
個別の添付ファイルページを表示する際に、その添付ファイルのMIMEタイプによって適用するphpファイルを分けることができます。
MIMEタイプとは、例えば、画像(image)、映像(video)、アプリ(application)、テキスト(text、plain、textplain)などです。
特殊なphpファイル
functions.php
WordPressで使う関数を記述しておけば、ほかのphpファイルから参照できるようになります。
また、既存のプラグインに使われている関数を修正することもできます。既存のプラグインは、直接プラグインファイルを修正することもできますが、そうするとプラグインを更新したときに自身で修正した部分は上書きされてしまいます。functions.phpに記述しておけばプラグインを更新しても上書きされることはありません。ただし、WordPressを更新した場合には、上書きされる恐れがあるので事前にfunctions.phpのバックアップを取っておきましょう(私の経験では今まで上書きされたことはありませんが)。
header.php
ヘッダー部分のみを記載し、各phpファイルに
<?php get_header(); ?>
と記述しておくことで、読み込ませることができます。
多くの場合ヘッダーやフッターは同じ記述になるため、ヘッダーを変更する場合には、header.phpの内容だけを書き換えれば、すべてのphpファイルに適用させることができます。
footer.php
フッター部分のみを記載し、各phpファイルに
<?php get_footer(); ?>
と記述しておくことで、読み込ませることができます。
sidebar.php
サイドバーのみを記載し、各phpファイルに
<?php get_sidebar(); ?>
と記述しておくことで、読み込ませることができます。
なお、サイドバーが複数ある場合には、「sidebar-1.php」もしくは「sidebar-name.php」というファイルを作成し、各phpファイルに
<?php get_sidebar(1); ?>
もしくは
<?php get_sidebar(‘name’) ?>
と記述することで読み込ませることができます。
それ以外には、以下の「任意の名称.php」を使うこともできます。
comments.php
コメントを出力するためのphpパーツです。
<?php comments_template(); ?>
と記載すると、コメントを出力させることができます。
コメントを出力できるのは、投稿記事か固定記事のみです。アーカイブページなどに出力しようとしても出力されません。
comments-popup.php
例えば、index.php?comments-popup=[記事のID]のようなリンクを設定した際に、そのリンクをクリックし、かつ<head>内に<?php comment_popup_script(); ?>という記述があり、また記事ループ内に<?php comments_popup_link(); ?>が記述されている場合、コメントがあれば適用されます。
comments-popup.phpはコメント欄のみを別ウィンドウでポップアップ表示させたいときに使用します。あまり使うことはないでしょう。
searchform.php
検索窓を表示するphpのパーツです。
<?php get_search_form(); ?>
で、表示させることができます。
任意の名称.php
自分で考えたオリジナルの名称のphpファイル(name.php)を読み込ませたい場合には、各phpファイルに
<?php get_template_part(‘name’); ?>
と記述します。
また、ハイフンで区切った任意の名称のphpファイル(name-category.php)の場合には、
<?php get_template_part(‘name’,’category’); ?>
と記載することで読み込ませることができます。
用意しておきたいphpファイル一覧
- index.php(必須。該当するphpファイルがない場合に適用される)
- header.php(各phpファイルのヘッダー部分のみを記載したもの)
- footer.php(各phpファイルのフッター部分のみを記載したもの)
- sidebar.php(各phpファイルのサイドバー部分のみを記載したもの)
- functions.php(重要。関数を記述する)
- 404.php(重要。エラーを表示する)
- search.php(重要。検索結果を表示する)
- single.php(重要。単一の記事を表示する)
- archive.php(重要。アーカイブを表示する)
- category.php(重要。カテゴリーを表示する)
- date.php(重要。日付アーカイブを表示する)
- tag.php(重要。タグを表示する)
- page.php(重要。固定ページを表示する)
- home.php(重要。トップページを表示する)
- comments.php(コメント欄を表示したい場合は必要)
関連記事