WordPressの構築の時、
「トップページのヘッダー部分にはこの画像Aを出したいけど、コンテンツページには画像Bを出したい」
と思うことってありますよね。

これは条件分岐といい、WordPressに限らずWebサイトではよく使わられる技術です。テンプレートタグをうまく使えば無駄にファイルを増やすこともなくなりますので、チェックしてみてください。今回は本当に良く使われる条件分岐タグをまとめてみました。

よく使われる条件分岐テンプレートタグ

メインページかどうかを判断する

if(is_home() && !is_paged()):  endif

サイトのホームのみなのかどうかを判断して、表示させるテンプレートタグはis_home()を利用します。私は!is_paged()を一緒に使うのですが、理由としては、必ずドメイントップに絞りたいので!拒否プログラムを記述しています。

<?php if(is_home() && !is_paged()): ?>
    ここはブログのメインページです!
<?php endif; ?>

実はフロントページなのかどうかの判断するテンプレートタグもあります。

if(is_front_page()):  endif

「フロントページってサイトのトップページと同じでしょ?」
と思われがちですが、ダッシュボードで任意で変更することが可能なのです。
ダッシュボード > 設定 > 表示設定
で、固定ページなのか、最新の投稿なのか選ぶことが可能です。固定ページにした場合is_home()による条件分岐ではfalse(NGっすよという意味)が返されます。is_home()はサイトのメインページなのかどうかの判断なので、フロントページの判断をしているわけではないのです。

<?php if(is_front_page()): ?>
    ここはフロントページです!
<?php endif; ?>

メインページとフロントページの概念が少々ややこしいですね。

投稿ページかどうかを判断する

if(is_single(‘ID‘)) :  endif

投稿ページはシングルページと呼んでおります。投稿IDはダッシュボードで確認できるので、もっと詳細に分岐をさせたい場合は各種投稿ID(パラメータ)を渡してあげると良いでしょう。

<?php if(is_single('10')) : ?>
    ページIDが"10"の場合、表示されています!
<?php elseif(is_single(array(10, 12, 14, 19))) : ?>
    ページIDが"10, 12, 14, 19"の場合、のとき表示されています!
<?php endif ?>

固定ページかどうかを判断する

if(is_page(‘ID‘)) :  endif

投稿ページ(シングルページ)と同様に条件分岐が可能です。固定ページIDもダッシュボードで確認することが可能です。

<?php if(is_page('100')): ?>
    ページID"100"の固定ページです。
<?php elseif(is_page('about-us')): ?>
    このページの投稿スラッグは"about-us"です!
<?php endif; ?>

どのカテゴリーに属するかどうかを判断する

if(is_category()):  endif

カテゴリーのアーカイブページが表示されているかどうかを判断するには、is_category() を使います。

<?php if(is_category('20')): ?>
	カテゴリーIDが"20"の記事を表示します。
<?php elseif(is_category('mono us')): ?>
	カテゴリーの名前が"mno us"の記事を表示します。
<?php elseif(is_category('blue-cheese')): ?>
	カテゴリースラッグが"blue-cheese"の記事を表示します。
<?php elseif(in_category( array( 10,20,30 ) )): ?>
	カテゴリーIDが "10, 20, 30 "の記事を表示します。
<?php elseif(!in_category( array( 41,51,61 ) )): ?>
	カテゴリーIDが" 41, 51, 61 "以外の記事を表示します。
<?php endif; ?>

特定のカテゴリーに属しているかどうかを判断する場合はin_category()を利用します。

if(in_category()):  end

属しているかどうかを判断するので、パラメータ(ID)は必須です。

<?php if(in_category(65)): ?>
	これはカテゴリーID 65 に属しているの記事です。
<?php elseif(in_category( array( 24,28,33 ) ) ): ?>
	これはカテゴリーID 24,28,33 のどれかに属している記事です。
<?php elseif(in_category('webmon')): ?>
	これはカテゴリースラッグ 'webmon'の記事です。
<?php endif; ?>

どのタグに属するかどうかを判断する

is_tag()has_tag()があり、使い方としては、is_category()in_category()と同じ感じです。
複数設定の判別を行うときもarrayを利用することで可能になります。

パラメータ(ID)を確認する(初心者さんへ)

24,28,33の部分が投稿IDになり、各コンテンツに割り振られております。

「投稿IDで条件分岐できますよ」とはいいつつ、初心者さんは「投稿IDをどこで見ることができるのだろう?」と考え込むはずです。私が初めてWordPressに触れたとき、このパラメータのことを一切しらず、DBなんてものも知らずすごい苦戦したのを覚えております。
投稿記事のタイトルにマウスを合わせるとブラウザの下の方(Chromeの場合)にURLが表示されます。
ID
パーマリンクの編集を可能にしている場合は、表示URLと異なり「あれ、違うじゃん」と思ってしまうかもしれませんが、データベース上ではPOST=IDで管理されております。
このPOST=IDが投稿IDになります。

ちなみにカテゴリーIDを知りたい場合は、カテゴリー一覧で各カテゴリーにマウスを合わせると同じような形で表示されます。

少々泥臭いですが、初心者さんが何かプログラムを書いたり新しいプラグインを入れなくともできることです。プラグインを入れ過ぎると重くなりますので、私は別にこの泥臭いやり方で十分だと思っております。

その他・まとめ

いかがでしたでしょうか。
条件分岐をいれることでサイトがよりブラッシュアップされますし、ターゲットに対しての訴求効果も高まります。検索後に表示する内容もオリジナルにすることで

コメントを残す

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