投稿ページの種類によって表示を変更する:条件分岐

表示するページの種類によって出力内容を変更したい時がある。
そんな時のための 覚書メモ

ホームかどうかを判別

使用例:ホームのみに表示や実行させたい内容がある場合に使用

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」カテゴリの場合を判断する事が出来る。


条件分岐タグ:WordPress Codex 日本語版