条件分岐タグとは

条件分岐タグとは、WordPressテンプレートタグの一種です。条件分岐タグは、出力するページの種類や、ページ内に含まれるデータに応じて条件をチェックし、処理する内容を分けることができます。

条件分岐タグとは

条件分岐タグは、条件によって出力内容を分けるために使います。

例えば、次の条件でカテゴリーアーカイブページで特定のカテゴリーだけ異なる表示をさせる場合を考えてみます。

カテゴリー名 ワードプレス
カテゴリースラッグ wordpress
カテゴリーID 1

このうち、カテゴリー「ワードプレス」のアーカイブページだけ他のカテゴリーとは異なる出力をさせるときには、次のように記述します。

<php if (is_category('wordpress')) : ?>
	カテゴリー「ワードプレス」のアーカイブページの表示内容
<php else : ?>
	他のカテゴリーのアーカイブページの表示内容
<php endif; ?>

この1行目にある「is_category()」が条件分岐タグです。

「is_category()」の()の中には指定したい条件(パラメータ)を記述できます。上の例では、()の中に「カテゴリースラッグ」を記述しましたが、「ID」(上の例では、1)を書いても構いません。

<php if (is_category('1')) : ?>
	カテゴリー「ワードプレス」のアーカイブページの表示内容
<php else : ?>
	他のカテゴリーのアーカイブページの表示内容
<php endif; ?>

おもな条件分岐タグ

その他に、よく使われる条件分岐タグを紹介します。

ホームページかどうかをチェック
is_home()

ホームページが表示されているかどうかをチェックします。

<?php if(is_home()): ?>
	ホームページの表示内容
<?php endif; ?>

トップページのみを指定したいとき

一般的なブログでは、反時系列的に記事の一覧が表示されて、古いものほど2ページ目、3ページ目・・・に表示されます。このようなページは排除し、純粋にトップページのみを指定したいときは、「!is_paged()」を併せて記述します。

<?php if(is_home() && !is_paged()): ?>
	トップページの表示内容
<?php endif; ?>

フロントページかどうかをチェック
is_front_page()

フロントページが表示されているかどうかをチェックします。

<?php if(is_front_page()): ?>
	フロントページの表示内容
<?php endif; ?>
ホームページとフロントページの違いとは?
一般的に、ホームページには投稿機能で作成された記事が新しいものから順に一覧表示されます。一方、フロントページは管理画面[設定]>[表示設定]>[フロントページの表示]で選択したページが表示されます。

個別投稿ページかどうかをチェック
is_single()

個別投稿ページが表示されているかどうかをチェックします。

<?php if(is_single()): ?>
	個別投稿ページの表示内容
<?php endif; ?>

()には、投稿スラッグや投稿IDをパラメータとして指定できます。

<?php if(is_single('wordpress')) : ?>
	個別投稿ページ(投稿スラッグ:「wordpress」)の表示内容
<?php elseif is_single(array(1, 12, 23, 34)) : ?>
	個別投稿ページ(投稿ID:「1, 12, 23, 34のいずれか」)の表示内容
<?php endif; ?>

固定ページかどうかをチェック
is_page()

固定ページが表示されているかどうかをチェックします。

<?php if(is_page()): ?>
	固定ページの表示内容
<?php endif; ?>

()には、ページスラッグやページIDをパラメータとして指定できます。

<?php if(is_page('3')) : ?>
	固定ページ(ページID:「3」)の表示内容
<?php elseif is_page(array(sitemap, about)) : ?>
	固定ページ(ページスラッグ:「sitemap, aboutのいずれか」)の表示内容
<?php endif; ?>

条件分岐タグは、この他にもさまざまな条件を指定できるものがあります。くわしくは、下記ページでご確認ください。


条件分岐タグを使ったテーマカスタマイズの具体例を、下記でご紹介しています。

関連ページ

2011年6月17日