if文使うこと、よくありますよね。
その条件分岐に使うタグ、自分用のメモ程度ですがまとめてみました。
is_home()
インデックスページ(トップページ)かどうかをチェックします。
<?php if(is_home()) { // トップページを表示中 <h1>やってみたら、できた。</h1> }else{ // トップページではない <p>やってみたら、できた。</p> } ?>
is_page()
個別の固定ページを表示しているかどうかをチェックします。
<?php if(is_page('company')) { // スラッグが「company」のページを表示中 } ?>
is_category()
カテゴリーページを表示しているかどうかをチェックします。
<?php if(is_category('blog')) { // スラッグが「blog」のカテゴリーページを表示中 } ?>
is_post_type_archive()
カスタム投稿タイプのアーカイブページを表示しているかどうかをチェックします。
<?php if(is_post_type_archive('item')) { // カスタム投稿タイプ「item」のアーカイブページを表示中 } ?>
is_single()
指定された投稿を表示しているかどうかをチェックします。
<?php if(is_single('17')) { // IDが「17」の投稿を表示中 } ?>
is_singular()
個別の投稿を表示しているかどうかをチェックします。
<?php if(is_singular('item')) { // カスタム投稿タイプ「item」の投稿ページを表示中 } ?>
is_tax()
カスタム分類のアーカイブページを表示しているかどうかをチェックします。
<?php if(is_tax('brand')) { // スラッグ名「brand」タクソノミーのアーカイブページを表示中 } ?>
特定のページの子ページかどうか
「このページの子ページには共通のコレを表示したい」とか、「親ページと同じのを子ページにも…」などに使います。
WordPressのタグにはそれがないので、functions.phpに以下を記述してタグっぽく作っちゃいます。
functions.php
// is_child_of('スラッグ') で条件分岐 function is_child_of($pagename) { if(is_page()) { global $post; if($post->ancestors) { $root = $post->ancestors[count($post->ancestors) - 1]; $root_post = get_post($root); $name = esc_attr($root_post->post_name); if($pagename == $name) return true; } } return false; }
使い方は一緒
<?php if(is_child_of('company')) { // スラッグ名「company」ページを親に持つ子ページを表示中 } ?>