2017年以前の旧ブログ

BLOG2017

wordpress条件分岐の使い方

ダーシノ Other Blog

前回「カスタム投稿で月間アーカイブ制作」についてブログに記載しましたが、実際にカテゴリー、タクソノミーと色々wordpressの機能を使っていくにつれ面倒くさくなるのがそれぞれに対応したパンクズナビゲーションの表示です。

どの状態の時に何を表示するのか、そんな判断をするために今回はwordpressで利用される条件分岐タグについてまとめました。

条件分岐タグまとめ

is_front_page()
実質的トップページを分岐します。is_home()でもいいのですが、管理画面上でフロントページの表示を「固定ページ」に設定してる場合などはis_front_page()が優先されて表示されます。

is_page()
固定ページを分岐します。slug名 about の固定ページを判断する場合は is_page('about') となります。

is_single()
投稿詳細ページを分岐します。single.phpもそうですが、single-カスタム投稿タイプ.phpも分岐になります。

is_singular()
固定ページ、投稿詳細ページ、添付ファイルページを分岐します。カスタム投稿タイプで投稿詳細ページを分岐する場合は、is_singleではなくis_singular('custom_post_type')と利用します。
※if文で利用する場合は、if(get_post_type() === 'custom_post_type') とget_post_type()でも分岐できます。

is_archive()
アーカイブページを分岐します。

is_post_type_archive()
カスタム投稿タイプでアーカイブページを分岐します。is_post_type_archive('custom_post_type')

is_category()
カテゴリーページを分岐します。slug単位で分岐する場合はis_category('slugname')と利用します。

is_tax()
タクソノミーページを分岐します。is_tax('taxonomy_type')
タクソノミーページはis_categoryでは分岐しません!

is_date()
年別、月別、日別アーカイブページを分岐します。
もっと細かく分岐すると
is_day() 日別アーカイブページ
is_month() 月別アーカイブページ
is_year() 年別アーカイブページ

is_404()
404ページを分岐します。

is_search()
検索結果ページを分岐します。

 

複数を指定したい場合は()内にarray()で指定します。
例) 複数のカスタム投稿詳細ページを分岐したい。
  is_singular( array( 'post1', 'post2') )

分岐条件を利用してパンクズを制作

簡単にパンクズを制作していきます。

カスタム投稿タイプ gallery
タクソノミータイプ tax_gallery

カスタム投稿の詳細、タクソノミー、カスタム投稿一覧を分岐します。

<a href="<?php bloginfo('url');?>">HOME</a>

<?php  if(is_singular('gallery')):?>
    <a href="<?php bloginfo('url');?>/archives/<?php echo(get_post_type( ));?>">Gallery</a>
    <span><?php the_title();?></span>
<?php  elseif(is_post_type_archive('gallery')):?>
    <span><?php the_title();?></span>
<?php elseif(is_tax('tax_gallery')):?>
    <span><?php echo(single_cat_title( '', false ));?></span>
<?php endif;?>

 

これで詳細ページを確認すると

pankuzu

無事表示されました。

実際は他分岐条件もろもろ入ってるんですが。
自分の備忘録としてもこの記事を活用していきます。