y.o.designers-works

WordPressの構築でよく使う条件分岐について

特定のカスタム投稿タイプで表示したいコンテンツや、特定のカテゴリで表示したいバナーなどがある場合に条件分岐を使います。
また、条件分岐で処理させると余分なテンプレートを作成しなくてもよくなります。
wordpressの構築でよく使う条件分岐の基本をまとめてみます。

条件分岐の基本

<?php if ( 条件 ): ?>
	//条件に該当する場合の内容を記述
<?php endif; ?>

条件が複数の時

<?php if ( 条件A ): ?>
	// 条件Aに該当する場合の処理
<?php elseif ( 条件B ): ?>
	// 条件Aに該当せず 且つ 条件Bに該当する場合の処理
<?php elseif ( 条件C ): ?>
	// 条件A・Bに該当せず 且つ 条件Cに該当する場合の処理
<?php else: ?>
	// 条件A・B・C以外の場合の処理
<?php endif; ?>

条件分岐の例

特定のカスタム投稿タイプの場合

<?php if ( is_singular( 'custom1' ) ): ?>
	//custom1というカスタム投稿タイプの投稿を見ている時
<?php endif; ?>

特定のカテゴリーの場合

<?php if ( is_category( 'cate1' ) ): ?>
	//cate1というカテゴリーページを見ている時 ※カテゴリーID指定でもOK
<?php endif; ?>

複数の固定ページを対象とした場合

<?php if ( is_page( array( 'page1', 'page2','page3' ) ) ): ?>
	//page1、page2、page3を見ている時
<?php endif; ?>

トップページ以外の場合

<?php if ( ! is_home() ): ?>
	//「!」をつけるとそれ以外という扱いなのでこの場合はTOPページ以外
<?php endif; ?>

2つの条件を指定する場合

<?php if ( is_home() || is_single() ): ?>
	//論理演算子「||」を使いTOPページか投稿の場合
<?php endif; ?>

条件分岐タグについて

タグ 条件
is_front-page() TOPページ
is_home() TOPページ
is_single() 投稿
is_singular() カスタム投稿タイプ
is_page() 固定ページ
is_archive() アーカイブページ
is_post_type_archive() カスタム投稿タイプアーカイブページ
is_date() 日付アーカイブページ
is_year() 年別アーカイブページ
is_author() 制作者アーカイブページ
is_category() カテゴリー一覧ページ
in_category() カテゴリーに属している記事ページ
has_term( $term, $taxonomy, $post ) カスタム分類のタームを持っているかチェック
is_tag() タグページ
is_tax( $taxonomy, $term ) カスタム分類のアーカイブページが表示されているか
is_object_in_term( $post->ID, ‘custom_taxonomy_name’, ‘term_name’ ) 指定されたオブジェクトが指定されたタームの、何かしらに関連付けられているか
is_search() 検索結果ページ
is_feed() フィードページ
is_page_template(‘sample.php’) この場合、sample.phpというページテンプレートを使っている場合

マルチサイトでの条件分岐について

「親サイト」か「子サイト」の判別

<?php if(is_main_site()): ?>
	<!--親サイトのとき出力したい内容-->
<?php else: ?>
	<!--子サイトのとき出力したい内容-->
<?php endif; ?>

特定の子サイトで分岐

<?php
global $current_blog;
$blog_id = $current_blog->blog_id;

<?php if($blog_id == 1): ?>
	<!--ブログIDが「1」のサイトのときに出力する内容-->
<?php elseif($blog_id == 2): ?>
	<!--ブログIDが「2」のサイトのときに出力する内容-->
<?php else: ?>
	<!--上記以外のサイトのときに出力する内容-->
<?php endif; ?>

マルチサイト化された子サイトの「ブログID」を調べるには、「サイトネットワーク管理者」の「サイト」から「URL」の項目にマウスオーバーすると画面左下あたりに表示されます。

まとめ

条件分岐は案件毎に都度考えなければいけないのでwordpressの構築を行う上で
いかに上手く使えるかで時間の短縮、余分なテンプレートの作成を省けます。

スポンサーリンク

他にオススメな記事