WordPressのテーマ構造を理解すれば、テーマ作成がより簡単になります。WordPressのテーマファイルがどのように連結して動作しているか紹介します。
目次
1.WordPressがテーマを認識には?
テーマを構成する必須ファイル
WordPressのテーマは、多くのファイルを使って作りますが、テーマを成立させているのは以下の2つの必須ファイルです。
・index.php
・style.css
テーマファイルと認識される条件
例えば「Twenty Thirteen」と呼ばれるテーマは、「Twenty Thirteen」という名のディレクトリがあるだけでは成り立ちません。WordPressは、「index.php」と「style.css」を「Twenty Thirteen」ディレクトリに設置したことによりテーマとみなされます。
また、ディレクトリ以外に限らず、以下の条件でWordPressがテーマとみなします。
・特定のディレクトリに設置する
・特定のファイル名(「index.php」と「style.css」いう名前)にする
・特定の宣言をソースコードに記述する
2.テーマファイルの構成
WordPressテーマファイルの図

構成するファイルについて
もっと多くのファイルが存在しますが、基本は図のような構成になります。役割は以下のようになります。
必須ファイル
テーマの中核となるファイルです。
index.php Webサイトの中心となるコンテンツが入ります。
style.css テーマのスタイルを記述します。
一覧表示用のテンプレートファイル
ニュースブログによくある複数の投稿を一覧するためのテンプレートです。
archives.php アーカイブを表示します。
category.php カテゴリーを表示します。
単独表示用のテンプレートファイル
単独のコンテンツを表示するためのテンプレートファイルです。単独投稿、固定ページ、添付画像のページの表示などに使います。
single.php 個別記事ページを表示します。
page.php 単独投稿ページを表示します。
特殊な用途に使うテンプレートファイル
ページがNot Foundだったとき、サイト内検索などの特殊な用途で使われる専用テンプレートファイルです。
404.php Not Foundのとき表示します。
search.php 検索したとき表示します。
モジュールテンプレートファイル
各テンプレートから、必要に応じて読み込まれる部分的テンプレートファイルです。複数種類のテンプレートから共通して使えるようにモジュール化されています。
header.php ヘッダーのモジュールです。
footer.php フッターのモジュールです。
sidebar.php サイドバーのモジュールです。
content.php コンテンツのモジュールです。
関数ファイル
テーマ内で使われるPHP関数をまとめるために使われます。WordPress専用やオリジナル関数をまとめ、様々な場所でッ関数を呼び出します。
functions.php 関数モジュールです。
inc/custom-header.php
content.php コンテンツのモジュールです。
3.ファイル同士を結合するには?
ファイル同士が結合するには、インクルードタグと呼ばれるファイル同士を結合するためのコードを記述します。例えば、index.phpなどにある「<?php get_header(); ?>」や「<?php get_footer(); ?>」です。インクルードタグを記述すると、記述した部分に記述先のファイル(header.phpなど)の中のソースが読み込まれ、TMLとして出力されます。

ソース
index.phpファイルにheader.phpを結合すると以下のようになります。
header.php
1 |
<head> |
2 |
<meta http-equiv=”content-type” content=”text/html; charset=UTF-8″/> |
3 |
<title><?php wp_title(‘-‘, true, ‘right’); ?> <?php bloginfo(‘name’); ?></title> |
4 |
<link rel=”stylesheet” href=”<?php bloginfo(‘stylesheet_url’); ?>” |
5 |
type=”text/css” media=”screen” /> |
6 |
</head> |
7 |
<body> |
8 |
<h1><a href=”<?php bloginfo(‘url’); ?>” title=”<?php bloginfo(‘name’); ?>” |
9 |
<?php bloginfo(‘name’); ?></a></h1> |
index.php
1 |
<?php get_header(); ?> |
2 |
<div id=”site-wrapper”> |
3 |
<div id=”head”> |
結合すると、HTMLの結果が以下のようになります。1~7行がheader.phpで表現されている部分で、8~9行がindex.phpで表現されていぶ部分です。
1 |
<head> |
2 |
<meta http-equiv=”content-type” content=”text/html; charset=UTF-8″/> |
3 |
<title>サイト名</title> |
4 |
<link rel=”stylesheet” href=”cssのURL” type=”text/css” media=”screen” />” |
5 |
</head> |
6 |
<body> |
7 |
<h1>サイト名</h1> |
8 |
<div id=”site-wrapper”> |
9 |
<div id=”head”> |
任意のファイルを結合する
header.phpのような決まったファイル以外も結合できます。自分で任意のファイル名で作ったPHPファイルも指定できます。
include
<?php include( TEMPLATEPATH . ‘/obj_file.php’ ); ?>
includeは「含める」という意味で、()の中にTEMPLATEPATH(テンプレートのパス)を指定します。つまり「obj_file.php」という名のファイルを読み込みます。
最新の呼び出し方
<?php get_template_part(‘aaa’); ?>
get_template_partという関数が新しく用意され、任意のファイルを呼び出す事が出来ます。上記はaaa.phpというファイルを呼び出しています。なるべく最新の関数を使うほうがよいので、これを使用しましょう。
番号でファイル指定
<?php get_header(‘2’); ?>
sidebar.phpやheader.phpは複数作成可能で、別の呼び出し方ができます。例えばheader.phpを元に別のファイルを作り、名前をheader-2.phpとします。すると上記のように簡単に呼び出せます。