1. WordPress基礎知識
  2. テーマをカスタマイズするときに最低限知っておきたいこと

テーマをカスタマイズするときに最低限知っておきたいこと

2016/7/19

WordPressテーマカスタマイズするときに、最低限知っておきたいことについてまとめてみました。

テーマの基本構造を理解する

WordPressのテーマには、たくさんのファイルが含まれています。これらのファイルのことを、テンプレートファイルといいます。

テンプレートファイル

WordPressでは、出力するページの種類によって使用されるテンプレートファイルが異なります。下の画像は、その一例です。

テンプレートファイル相関図

この画像では、例えばトップページのテンプレートファイルは「index.php」が使用されるように書いてあります。しかし、使用しているテーマによっては必ずしも「index.php」が使われるわけではありません。これには、テンプレート階層という考え方が関係しています。

テンプレート階層

テンプレート階層とは、テンプレートファイルを出力する際の優先順位のことです。

下の表は、WordPress Codexで紹介されているテンプレート階層の概念図を表にしたものです。※クリックすると、拡大図が別窓で開きます。
テンプレート階層表

一例として、「カテゴリーページ」を見てください。(※「カテゴリーページ」とは、同じカテゴリーに属する記事を一覧表示させるページです。)すると、テンプレート階層(優先順位)は、つぎのようになっています。

  1. category-slug.php
  2. category-ID.php
  3. category.php
  4. archive.php
  5. index.php

つまり、「カテゴリーページ」を表示する場合でも、使用されるテンプレートファイルの候補が5つ以上あることがわかります。

※5つ以上と書いたのは、category-slug.phpやcategory-ID.phpの「-slug」や「-ID」の部分を書き換えることで、いくつでもファイルの数が増えていくからです。

例えば、4.の「archive.php」は、カテゴリーページだけではなく日付別ページやタグページの候補にもなります。もしカテゴリーページだけをカスタマイズするのなら、「category.php」よりも上位にあるテンプレートファイルを修正する必要があるのです。

テンプレートタグ

テンプレートタグは、Wordpressに対して何かを表示・取得させたいときに使います。テンプレートタグは、テンプレートファイルの中に記述します。

よく使われるテンプレートタグの1つに、「bloginfo()」があります。「bloginfo()」は、ブログのタイトル・URL・説明文など、ブログの情報を表示させるためのテンプレートタグです。

このように「bloginfo()」を機能させるには、つぎのように () の中に引数を記述します。※下の例で、太字部分が引数です。

ブログタイトル: <?php bloginfo(‘name‘); ?>
ブログURL: <?php bloginfo(‘url‘); ?>
ブログ説明文: <?php bloginfo(‘description‘); ?>

WordPressで使用できるテンプレートタグは、他にもたくさんあります。一覧は、テンプレートタグ – WordPress Codex 日本語版で確認できます。

さらに、テンプレートタグの一種である、インクルードタグ条件分岐タグも覚えておくといいでしょう。

インクルードタグ

インクルードタグは、他のテンプレートファイルを読み込むために使います。サイトのヘッダーやフッター、サイドバーを表示させるために、ほとんどのテーマの中で記述されています。

インクルードタグ

上の図は、「single.php」が出力されるときに、「header.php」「footer.php」「sidebar.php」が読み込まれる様子を示しています。このとき、「single.php」の中には、下記のインクルードタグが記述されています。

  • <?php get_header(); ?>
  • <?php get_footer(); ?>
  • <?php get_sidebar(); ?>

この他にも、検索フォーム(searchform.php)を読み込むための「<?php get_search_form(); ?>」や、コメントテンプレート(comments.php)を読み込むための「<?php comments_template(); ?>」も使用できます。

「include文」によるファイルの読み込み

その他のテンプレートファイルを読み込むためには、PHPの「include文」を使います。例えば、「sample.php」というファイルを読み込むには、

<?php include( TEMPLATEPATH . ‘/sample.php’ ); ?>

と記述します。

条件分岐タグ

条件分岐タグは、出力するページの種類や、ページ内に含まれるデータに応じて条件を判断し、処理する内容を分けることができます。

例えば、カテゴリーページで、特定のカテゴリーだけ異なる表示をさせるということも可能です。スラッグが「sample」のカテゴリーだけをカスタマイズするための条件分岐タグは、

<php if (is_category(‘sample’)) : ?>

と書きます。この他によく使われる条件分岐タグは、つぎの通りです。

is_home() メインページかどうかを判断
is_front_page() フロントページかどうかを判断
is_single() 個別投稿ページかどうかを判断
is_page() 固定ページかどうかを判断

ループ

ループは、複数の記事を連続してくり返し表示させるために使われます。例えば「新着記事一覧」のように、いくつかの投稿記事が最新順で表示されるときなどにも、ループが使われています。

ループの基本構造

<?php if (have_posts()) : ?>
 // 投稿一覧を表示する前の処理内容
<?php while (have_posts()) : the_post(); ?>
 // 各投稿を表示する処理内容
<?php endwhile; ?>
 // 投稿一覧を表示した後の処理内容
<?php else : ?>
 // 投稿が無いときの処理内容
<?php endif; ?>

ループ機能をカスタマイズするためには、この構造の中にXHTMLやテンプレートタグを記述します。


以上、テーマをカスタマイズするときに最低限知っておきたいことについて、まとめてみました。それぞれ要点のみを書いていますので、わかりにくい場合は下記の個別記事を参照してください。

このサイトでも利用している、おすすめサービス

エックスサーバー

当サイト開設から5年以上使っていますが、トラブルは一切ありません。WordPress自動インストール機能は、もちろん標準装備。ドメインプレゼントキャンペーン延長決定!(12月23日(金)18:00まで)

お名前.com

格安でドメインを取得できるお得なキャンペーンを頻繁に開催。国内最大級のドメイン登録サービスです。電話サポートが24時間無料なので、初心者でも安心して利用できます。

カテゴリー

ビジネスサイトを作りたいあなたに

おすすめのテーマ、あります。