最低限度 php 的なレベル


条件分岐タグ – 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 日本語版


コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です