投稿ページの種類によって表示を変更する:条件分岐
表示するページの種類によって出力内容を変更したい時がある。
そんな時のための 覚書メモ
ホームかどうかを判別
使用例:ホームのみに表示や実行させたい内容がある場合に使用
is_home()
<?php if (is_home()): ?> //ホームの場合に実行させる内容を記述 <?php else: ?> //それ以外の場合に実行させる内容を記述 (何も表示させない場合は何も書かなくて良い) <?php endif; ?>
特定のカテゴリかどうかを判別
使用例:カテゴリの内容によって内容を変えたい場合
is_category()
<?php if (is_category('catname')): ?> //カテゴリスラッグが「catname」の場合に実行させる内容を記述 <?php else: ?> //それ以外の場合に実行させる内容を記述 (何も表示させない場合は何も書かなくて良い) <?php endif; ?> ------------------------------------- //複数の分岐例 <?php if (is_home()): ?> //ホームだった場合に実行させる内容を記述 <?php elseif (is_category (array('news','blog'))): ?> //カテゴリスラッグが「news」か「blog」の場合に実行させる内容を記述 <?php else: ?> //それ以外の場合に実行させる内容を記述。 (何も表示させない場合は何も書かなくて良い) <?php endif; ?>
is_categoryとin_category
上記の方法だと、カテゴリー一覧ページしか判別されず、個別ページではその他のページとなる。
(個別ページのスラッグにはカテゴリースラッグを含まない為)
そういう場合にin_categoryを使用する。
<?php if (is_category('news') || in_category('news')): ?>
カテゴリスラッグが「news」または投稿内容が「news」カテゴリに属する記事の場合に実行される
特定の固定ページを判別
固定ページを特定させたい場合は「is_page」+ページスラッグを指定
is_page
<?php if (is_page('products')): ?>
その他の判別
404表示や検索結果、カスタム投稿タイプやアーカイブページの場合
is_404 , is_search
//404ページの場合 <?php if (is_404()): ?> ------------------------------------- //検索結果ページの場合 <?php if (is_search()): ?>
is_post_type_archive, is_singular, is_tax
カスタム投稿タイプ「works」で設定した場合
<? if (is_post_type_archive('works') || is_singular('works') || is_tax('works_cat')): ?>
*is_post_type_archive:カスタム投稿タイプかアーカイブページかを調べる。
*is_singular:個別投稿ページ・固定ページ・添付ファイルページが表示されている場合にtureを返す。
*is_tax:タクソノミーの一覧ページが表示されている場合を判断する時に使用する。
「is_tax(‘works_cat’)」とする事で「works」カテゴリの場合を判断する事が出来る。