1. TOP
  2. wordpressテーマ作成
  3. 8.WordPressで表示を条件分岐するための様々なテンプレートを追加する
wordpressテーマ作成

8.WordPressで表示を条件分岐するための様々なテンプレートを追加する

WordPressでは、テンプレートを追加することでさまざまなテンプレートを条件分岐させることができます。

カテゴリページやタグページなどの一覧ページとTOPページの表示を分けたり、固定ページや投稿ページに様々なテンプレートを適応したりして、思い通りのサイトを作成しましょう。

今回は、WordPressのテーマに追加することで様々なページの表示を切り替えることができるテンプレートについてご紹介します。

TOPページの表示を他の一覧ページと分ける

TOPページは、管理画面で最新の投稿に設定しているときはindex.phpに記述した内容が出力されます。

しかし、『front-page.php』もしくは『home.php』をテンプレートに追加することでTOPページだけ出力する内容やデザインを変更することも可能です。

なお、front-page.phpとhome.phpを両方作成した場合は、front-page.phpが最優先で適応されます。

index.phpを各一覧ページごとに分ける

TOPページだけでなくWordPrssでは、新しくテンプレートを作成することで、様々な一覧ページを派生させる事ができます。

index.phpから派生するテンプレート

  • カテゴリ一覧ページ→category.php
  • タグ一覧ページ→tag.php
  • 年別,月別のアーカイブページ→archive.php
  • 検索結果ページ→serch.php

もし、一覧ページを出力するテンプレートにindex.phpではなく、独自のテンプレートを適応させたい場合は、上記のテンプレートを新しく作成・編集しましょう。

テンプレートを分けずにindex.php内で条件分岐をする

『frontpage.php』や『home.php』を新たに作成せずに、index.php内にphpで条件分岐をすることで、TOPページと他の一覧ページの表示を切り替えることもできます。

index.php内で条件分岐をする場合は、WordPressに元々含まれている関数を使用します。

TOPページを指定する場合

<?php if (is_home()): ?>
ここにTOPページに出力したい内容を記述
<?php endif; ?>

TOPページ以外に出力する内容を指定する場合

<?php if (!is_home()): ?>
ここにTOP以外の一覧ページに出力したい内容を記述
<?php endif; ?>

上記のように条件分岐には、2パターンの指定方法があります。好みや状況応じて使いわけましょう。
また、『is_home』や『!is_home』の記述を変更することで、タグページやカテゴリページなど他のページでも条件分岐を指定することもできます。

  • TOPページ → is_home
  • 記事 → is_single
  • 固定ページ → is_page
  • カテゴリ一覧 → is_category
  • タグ → is_tag
  • 年,月,日,時間 → is_date
  • 検索結果 → is_search
  • 404 → is_404

カテゴリごとに一覧ページの表示を分ける

WordPressで設定しているカテゴリごとにページの表示を分けたい場合も、新たにテンプレートファイルを作成することで、表示を分けることができます。

各カテゴリごとのテンプレートファイルを作成する場合は、テンプレート名を下記のように設定します。

category-スラッグ名.php

または、

category-ID番号.php

『category-』の後に”カテゴリスラッグ”か”カテゴリID”を記述したテンプレート作成することで記述したスラッグ(ID)用のテンプレートが適応されるようになります。

固定ページに様々なテンプレートを適応する

WordPressの固定ページを出力する場合には、通常は『page.php』が適応されますが、新たにテンプレートファイルを作成することで、デザインや出力する要素を固定ページごとに切り替えることができます。

固定ページ用のテンプレートを作成する場合は、下記のソースコートを一番最初に記述してテンプレートファイルを作成します。テンプレートの名前は、自分がわかりやすい名前を付けてください。

<?php
/*
Template Name: テンプレートの名前
*/
?>

上記のソースをテンプレートの一番最初に記述したテンプレートを作成することで、固定ページの編集画面でテンプレートを選択できるようになります。

投稿ページ(記事)に様々なテンプレートを適応する

固定ページと同じように、投稿ページでも新たにテンプレートファイルを作成することで、デザインや出力する要素を各記事ごとに切り替えることができます。

投稿ページ用のテンプレートの作成方法も固定ページと同じように、テンプレートの一番最初にソースコードを追加するだけです。

<?php
/*
Template Name: テンプレートの名前
Template Post Type: post
*/
?>

上記のソースコートを追加することで、single.phpとは別に記事用のテンプレートファイルを記事の投稿画面で選択できるようになります。

テンプレートを呼び出して使用する

WordPressでは、様々なテンプレートで出力やデザインを指定していますが、複数のテンプレートに共通の内容があることも少なくありません。

共通する部分が複数ある場合は、共通部分を記述した新たなテンプレートを作成し、それを各テンプレートで呼び出して使用しましょう。

共通部分のテンプレートを外部化することで、修正する際なども一箇所訂正するだけで済むので効率的にWordPressのテーマを編集することができます。

共通部分は好きな名前でテンプレートを作成してもOKです。新しく作成したテンプレートを呼び出す場合には、下記の記述を呼び出したい場所に追加してください。

<?php get_template_part( '呼び出したいテンプレート名' ); ?>

『’呼び出したいテンプレート名’』の部分には拡張子は不要です。

以上でWordPressテーマの表示を切り替えるためのテンプレートの説明は終了です。様々なテンプレートや条件分岐を使用して、あなたの思い通りのテーマを作成しましょう。

これで、WordPressレスポンシブテーマ作成は終了です。作成したテーマをベースに自分好みな機能やデザインを追加してカスタマイズしていきましょう。

なお、今回作成した『レスポンシブスタンダードテーマ』のファイルは下記からダウンロードできます。

レスポンシブスタンダートテーマ
ダウンロード

様々なWordPressに追加できる機能については『WP機能追加』カテゴリで紹介しています。様々な機能を追加する場合は、是非一度覗いてみてください。