最低限度 php 的なレベル

2010年2月19日 金曜日 takafumi

条件分岐タグ – Conditional tag

今回ちょっとタイトルが正確じゃないかも。

前回はテンプレートを切り替えることで表示を変えましたが、今回は同じテンプレートで表示を変える方法です。
そのために使う is_home() や is_single() といったものを条件分岐タグといいます。
しかし、これは完全に html と css の外側のものです。
具体的な使い方はこう。

<?php if (is_single()) : ?>
hogehoge
<?php else : ?>
foofoo
<?endif; ?>

これで記事単体のページでは「hogehoge」それ以外のページでは「foofoo」が表示されます。
というだけではわかりにくいのでもうちょっと実例を。

たとえばページの時は div のクラス名を変えるなら

<?php if (is_page()) : ?>
<div class="page">
<?php else : ?>
<div class="post">
<?endif; ?></div></div>

さらにトップページも変えるなら

<?php if (is_page()) : ?>
<div class="page">
<?php elseif(is_home()) : ?>
<div class="home">
<?php else : ?>
<div class="post">
<?endif; ?></div></div></div>

とできます。

また、テンプレートではできなかった個別記事についての表示変更も可能です。

<?php if (is_page()) : ?>
<div class="page">
<?php elseif(is_home()) : ?>
<div class="home">
<?php elseif(is_single('21')) : ?>
<div class="special">
<?php else : ?>
<div class="post">
<?endif; ?></div></div></div></div>

変更できるのは html だけではなく、テンプレートタグも変更できます。
固定ページを表示しているときにヘッダへ header-page.php を読み込ませたい場合は

< ?php if (is_page()) : ?>
< ?php get_header('page'); ?>
< ?php else : ?>
< ?php get_header(); ?>
< ?endif; ?>

で出来ます。

複数の条件について、たとえばカテゴリ3もしくは6のときとか、分岐させたりもできるんですが、その辺は完全に php の話になるので興味がある方はさらに調べてみるといいかと思います。

また条件分岐タグについては Codex に詳しい一覧がありますのでぜひご参照ください。

条件分岐タグ – WordPress Codex 日本語版

カテゴリー:

コメントを残す