CHIPS

制作チップス

WordPressチートシート② 条件分岐

2025年5月27日

カテゴリー: 制作チップス

WordPressの条件分岐

条件分岐の書き方

<?php if (条件) : ?>
  条件に当てはまるときに表示するもの
<?php else: ?>
  条件に当てはまらないときに表示するもの
<?php endif; ?>

elseifで細かな条件分岐

<?php if ( is_home() || is_front_page() ) : ?>
  ホームでのみ表示するもの
<?php elseif ( is_page() ) : ?>
  固定ページで表示するもの
<?php else: ?>
  それ以外に表示するもの
<?php endif; ?>

「!」で「◯◯でないとき」という場合

<?php if ( !is_home() ) : ?>
  メインの投稿ページ以外で表示するもの
<?php endif; ?>

複数の条件を組み合わせる

ifの括弧()内では、&&(ANDの意味)と||(ORの意味)を使って、2つ以上の条件を組み合わせることができる。

<?php if ( wp_is_mobile() && is_single() ) : ?>
  「モバイル」かつ「記事ページ」のときに表示するもの
<?php endif; ?>

※条件を2つとも満たすときに表示する

<?php if ( wp_is_mobile() || is_single() ) : ?>
  「モバイル」もしくは「記事ページ」のときに表示するものをココに書く
<?php endif; ?>

※条件のどちらか一方(もしくは両方)を満たしたときに表示する

コメントアウトの書き方

<?php if(略): //◯◯のとき ?>
  略
<?php else: //◯◯でないとき?>
  略
<?php endif; //◯◯の条件分岐終了 ?>

条件分岐の使用例

サムネイルがある場合

<?php if ( has_post_thumbnail()): ?>
	<?php the_post_thumbnail();?>
<?php endif; ?>

single.phpのテンプレートで振分け

<?php
	$post = $wp_query->post;
	if (in_category('news')||in_category('event')) {
		//お知らせ用テンプレート
		get_template_part( 'single','base' );
	} elseif(in_category('real')) {
		//不動産用テンプレート
		get_template_part( 'single','real' );
	} else {
		//上記以外の場合のテンプレート
		get_template_part( 'single','base' );
	}
?>

カスタム投稿タイプで振分け

<?php if ( get_post_type() === 'カスタム投稿タイプ名' ): ?>
指定されたカスタム投稿タイプの場合のみ表示
<?php endif; ?>

カスタム投稿タイプのアーカイブページで振分け

<?php if(is_post_type_archive('カスタム投稿タイプ名')): ?>
カスタム投稿タイプのアーカイブページの場合のみ表示
<?php endif; ?>

複数のカスタム投稿タイプのアーカイブページで振分け

<?php if( is_post_type_archive( array( 'カスタム投稿タイプ名1', 'カスタム投稿タイプ名2') ) ) :?>
  いくつかの特定のカスタム投稿のアーカイブページだけに表示
<?php endif;?>

特定のカスタム投稿のシングルページで振り分け

<?php if( is_singular( 'カスタム投稿タイプ名' ) ) :?>
  特定のカスタム投稿のシングルページにだけ表示
<?php endif;?>

いくつかの特定のカスタム投稿のシングルページで振り分け

<?php if( is_singular( array( 'カスタム投稿タイプ名1', 'カスタム投稿タイプ名2' ) ) ) :?>
  いくつかの特定のカスタム投稿のシングルページだけ表示
<?php endif;?>

カスタム分類で振分け①

<?php if(is_tax('タクソノミー名')): ?>
タクソノミーのアーカイブページで表示
<?php endif; ?>

カスタム分類で振分け②

<?php if(is_tax('タクソノミー名', 'ターム名')): ?>
 タクソノミーのアーカイブページで、そのタームが'ターム名'だけ表示
<?php endif; ?>

カスタム分類で振分け②タームが複数ある場合

<?php if(is_tax('タクソノミー名', array('ターム名1','ターム名2'))): ?>
 タクソノミーのアーカイブページで、そのタームが'ターム名1''ターム名2'だけ表示
<?php endif; ?>

カスタム分類で振分け③(シングルページ)

<?php if (is_object_in_term($post->ID, 'タクソノミー名','ターム名')): ?>
シングルページ
<?php endif; ?>

カスタム分類で振分け③タームが複数ある場合(シングルページ)

<?php if (is_object_in_term($post->ID, 'fruit_cat',array('apple','orange'))): ?>
シングルページ
<?php endif; ?>

タグページで振分け

<?php if(is_tag()): ?>
タグのアーカイブページの場合のみ表示
<?php endif; ?>

検索結果ページで振分け

<?php if(is_search()): ?>
検索結果ページの場合のみ表示
<?php endif; ?>

404エラーページで振分け

<?php if(is_404()): ?>
404ページの場合のみ表示
<?php endif; ?>
is_home()メインの投稿ページかを判定
is_front_page()フロントページかを判定
is_singular()投稿タイプを判定
デフォルトの投稿 => is_singular( ‘post’ )
カスタム投稿タイプ => is_singular( ‘投稿タイプ名’ );
is_single()個別の投稿ページかを判定
例:is_single(‘投稿ID’)
  is_single( array(‘投稿ID’,’投稿ID’,’投稿ID’) )
is_page()固定ページかを判定
例:is_page(‘ページID’)
  is_page( array(‘ページID’,’ページID’,’ページID’) )
is_page_template()ページテンプレートが使われているかを判定
例 sample.php => if ( is_page_template( ‘sample.php’ ) )
is_archive()各アーカイブページが表示されているかを判定
※アーカイブの1ページ目のみ
<?php if( is_archive() && !is_paged() ) : ?>
アーカイブの1ページ目でのみ表示するものをココに書く
<?php endif; ?>
is_category()ページが $category カテゴリーと関連付けられているかを判定
※カテゴリーの1ページ目のみ
<?php if( is_category() && !is_paged() ) : ?>
カテゴリーの1ページ目でのみ表示するものをココに書く
<?php endif; ?>
in_category()特定のカテゴリーに属しているかを判定
wp_is_mobile()モバイル(スマホ、タブレット)かを判定
is_404()404ページが表示されているかを判定