未分類
0

条件分岐で表示切り替えのまとめ

WordPress(ワードプレス)の「条件分岐タグ」。
サイドバーの内容を、トップページではこうで、カテゴリーAではこうで、固定ページで作ったこのページだけはこんな感じで….と、表示内容を切り替えたい時、毎度毎度ググってる、モノ覚えの悪い自分のタメのまとめ記事です。

トップページ

<?php if ( is_home() || is_front_page() ) : ?>
トップページの場合のみ表示
<?php endif; ?>

投稿の個別ページ

<?php if(is_single()): ?>
投稿の個別ページの場合のみ表示
<?php endif ?>
投稿個別ページをさらに細かく分岐
<?php if(is_single()): ?>
<?php if(is_single('ID')): ?>
<?php if(is_single('投稿のタイトル')): ?>
<?php if(is_single('投稿のスラッグ')): ?>
<?php if(is_single(array(ID, ID))): ?>
<?php if(is_single(array('スラッグ', 'スラッグ'))): ?>

固定ページ

<?php if(is_page()): ?>
固定ページの場合のみ表示
<?php endif; ?>
固定ページをさらに細かく分岐
<?php if(is_page('ID')): ?>
<?php if(is_page('ページのタイトル')): ?>
<?php if(is_page('ページのスラッグ')): ?>
<?php if(is_page(array(ID, ID))): ?>
<?php if(is_page(array('スラッグ', 'スラッグ'))): ?>

固定ページ階層(親ページ、子ページ)の、サブページ(子ページ)かどうかを判別分岐するにはfunctions.phpへの追加記述が必要。WordPressをカスタマイズするなら絶対覚えておきたい条件分岐やカスタム投稿タイプなどいろいろの「1. 5. サブページかどうかをチェックする」がとても参考になる。

カテゴリーページ

<?php if(is_category()): ?>
カテゴリーページの場合のみ表示
<?php endif; ?>
カテゴリーページをさらに細かく分岐
<?php if(is_category('ID')): ?>
<?php if(is_category('カテゴリー名')): ?>
<?php if(is_category('カテゴリーのスラッグ')): ?>
<?php if(is_category(array( ID,ID ))): ?>
<?php if(is_category(array('スラッグ', 'スラッグ'))): ?>
<?php if(in_category('ID')): ?>
指定されたカテゴリーIDに属する記事の場合のみ表示
<?php endif; ?>

<?php if(!in_category('ID')): ?>
指定されたカテゴリーID以外のカテゴリーに属する記事の場合のみ表示
<?php endif; ?>

アーカイブページ

is_archive()

カスタム投稿タイプ

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

カスタム投稿タイプのアーカイブページ

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

カスタム分類

<?php if(is_tax()): ?>
カスタム分類ページの場合のみ表示
<?php endif; ?>
<?php if(is_tax('カスタム分類名')): ?>

タグページ

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

検索結果ページ

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

404エラーページ

<?php if(is_404()): ?>
404ページの場合のみ表示
<?php endif; ?>

【利用する際の記述例】

<?php if(is_page()): ?>
固定ページの場合のみ表示

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

<?php elseif(is_category()): ?>
カテゴリーページの場合のみ表示
<?php elseif(is_post_type_archive('カスタム投稿タイプ名')): ?>
指定されたカスタム投稿タイプ名のアーカイブページの場合のみ表示
<?php elseif(is_tax('カスタム分類名')): ?>
指定されたカスタム分類名ページの場合のみ表示
<?php elseif(is_tag()): ?>
タグのアーカイブページtag.phpの場合のみ表示
<?php elseif(is_search()): ?>
検索結果ページの場合のみ表示
<?php elseif(is_404()): ?>
404ページの場合のみ表示
<?php else: ?>
それ以外
<?php endif; ?>

条件分岐タグ – WordPress Codex
WordPress:条件分岐指定タグ | Web制作 ウェブマジック
WordPressをカスタマイズするなら絶対覚えておきたい条件分岐やカスタム投稿タイプなどいろいろ
WordPressでよく使うテンプレートタグの覚え書き | Webクリエイターネット

【未検証】

<?php if(is_page_template()): ?>
固定ページ用テンプレートで分岐?
<?php endif; ?>
関連記事
保護中: Myメモ:総合cf
パンくずリストをプラグインなしで表示
トップページにのみ表示させる