トップページ関連の条件分岐
トップページ
<?php if ( is_home() || is_front_page() ) : ?>
トップページの場合に表示するコンテンツや処理を記載。
<?php else: ?>
それ以外のページで表示するコンテンツや処理を記載。
<?php endif; ?>
トップページかどうかで表示を切り替える条件分岐です。
固定ページをトップページに指定した場合【is_home()】では認識してくれません。
【is_front_page()】を合わせて記載しておきましょう。
トップページの場合に独自のコンテンツを表示、独自の処理を行うだけでよければ、
<?php else: ?>
それ以外のページで表示するコンテンツや処理を記載。
上記の部分は不要です。
以下で紹介する各種コードに関しても同様となります。
投稿関連の条件分岐
投稿ページなら
<?php if ( is_single() ) : ?>
投稿ページの場合に表示するコンテンツや処理を記載。
<?php else: ?>
それ以外のページで表示するコンテンツや処理を記載。
<?php endif; ?>
投稿ページかどうかで表示を切り替える条件分岐です。
特定の投稿ページなら
<?php if( is_single('投稿ID') ) : ?>
指定した投稿ページの場合に表示するコンテンツや処理を記載。
<?php else: ?>
それ以外のページで表示するコンテンツや処理を記載。
<?php endif; ?>
指定した投稿かどうかで表示を切り替える条件分岐です。
【投稿ID】の部分を指定する投稿の投稿IDに置き換えてください。
投稿IDの調べ方は【投稿IDの調べ方】で詳しく解説しています。
特定の投稿ページなら(複数バージョン)
<?php if( is_single( array('投稿ID','投稿ID','投稿ID') ) ) : ?>
指定した投稿ページの場合に表示するコンテンツや処理を記載。
<?php else: ?>
それ以外のページで表示するコンテンツや処理を記載。
<?php endif; ?>
指定する投稿が複数の場合は、こちらのコードを使ってください。
投稿IDを複数指定するときは【array()】が必須です。
固定ページ関連の条件分岐
固定ページなら
<?php if ( is_page() ) : ?>
固定ページの場合に表示するコンテンツや処理を記載。
<?php else: ?>
それ以外のページで表示するコンテンツや処理を記載。
<?php endif; ?>
固定ページかどうかで表示を切り替える条件分岐です。
特定の固定ページなら
<?php if( is_page('固定ページID') ) : ?>
指定した固定ページの場合に表示するコンテンツや処理を記載。
<?php else: ?>
それ以外のページで表示するコンテンツや処理を記載。
<?php endif; ?>
指定した固定ページかどうかで表示を切り替える条件分岐です。
【固定ページID】の部分を指定する固定ページの固定ページIDに置き換えてください。
固定ページIDの調べ方は【固定ページIDの調べ方】で詳しく解説しています。
特定の固定ページなら(複数バージョン)
<?php if( is_page( array('固定ページID','固定ページID','固定ページID') ) ) : ?>
指定した固定ページの場合に表示するコンテンツや処理を記載。
<?php else: ?>
それ以外のページで表示するコンテンツや処理を記載。
<?php endif; ?>
指定する固定ページが複数の場合は、こちらのコードを使ってください。
固定ページIDを複数指定するときは【array()】が必須です。
アーカイブページ関連の条件分岐
アーカイブページなら
<?php if( is_archive() ) : ?>
アーカイブページの場合に表示するコンテンツや処理を記載。
<?php else: ?>
それ以外のページで表示するコンテンツや処理を記載。
<?php endif; ?>
アーカイブページかどうかで表示を切り替える条件分岐です。
上記のコードをheader.phpなどに記述した場合、カテゴリーアーカイブ、タグアーカイブ、投稿者アーカイブ、日付別アーカイブで、コード内で記載したコンテンツの表示や処理が実行されます。
カテゴリページなら
<?php if( is_category() ) : ?>
カテゴリーページの場合に表示するコンテンツや処理を記載。
<?php else: ?>
それ以外のページで表示するコンテンツや処理を記載。
<?php endif; ?>
カテゴリーページかどうかで表示を切り替える条件分岐です。
特定のカテゴリページなら
<?php if( is_category('カテゴリーID') ) : ?>
指定したカテゴリーページの場合に表示するコンテンツや処理を記載。
<?php else: ?>
それ以外のページで表示するコンテンツや処理を記載。
<?php endif; ?>
指定したカテゴリーページかどうかで表示を切り替える条件分岐です。
【カテゴリーID】の部分を指定するカテゴリーのカテゴリーIDに置き換えてください。
カテゴリーIDの調べ方は【カテゴリーIDの調べ方】で詳しく解説しています。
特定のカテゴリページなら(複数バージョン)
<?php if( is_category( array('カテゴリーID', 'カテゴリーID') ) ) : ?>
指定したカテゴリーページの場合に表示するコンテンツや処理を記載。
<?php else: ?>
それ以外のページで表示するコンテンツや処理を記載。
<?php endif; ?>
指定するカテゴリーが複数の場合は、こちらのコードを使ってください。
カテゴリーIDを複数指定するときは【array()】が必須です。
特定のカテゴリーに分類された投稿ページなら
<?php if( in_category('カテゴリーID') ) : ?>
指定したカテゴリーに属する投稿の場合に表示するコンテンツや処理を記載。
<?php else: ?>
それ以外のページで表示するコンテンツや処理を記載。
<?php endif; ?>
指定したカテゴリーに属している投稿かどうかで表示を切り替える条件分岐です。
特定のカテゴリーに分類された投稿ページなら(複数バージョン)
<?php if( in_category( array('カテゴリーID', 'カテゴリーID') ) ) : ?>
指定したカテゴリーに属する投稿の場合に表示するコンテンツや処理を記載。
<?php else: ?>
それ以外のページで表示するコンテンツや処理を記載。
<?php endif; ?>
指定するカテゴリーが複数の場合は、こちらのコードを使ってください。
カテゴリーIDを複数指定するときは【array()】が必須です。
タグページなら
<?php if( is_tag() ) : ?>
タグページの場合に表示するコンテンツや処理を記載。
<?php else: ?>
それ以外のページで表示するコンテンツや処理を記載。
<?php endif; ?>
タグページかどうかで表示を切り替える条件分岐です。
特定のタグページなら
<?php if( is_tag('タグID') ) : ?>
指定したタグページの場合に表示するコンテンツや処理を記載。
<?php else: ?>
それ以外のページで表示するコンテンツや処理を記載。
<?php endif; ?>
指定したタグページかどうかで表示を切り替える条件分岐です。
【タグID】の部分を指定するタグのタグIDに置き換えてください。
タグIDの調べ方は【タグIDの調べ方】で詳しく解説しています。
特定のタグページなら(複数バージョン)
<?php if( is_tag( array('タグID', 'タグID') ) ) : ?>
指定したタグページの場合に表示するコンテンツや処理を記載。
<?php else: ?>
それ以外のページで表示するコンテンツや処理を記載。
<?php endif; ?>
指定するタグが複数の場合は、こちらのコードを使ってください。
タグIDを複数指定するときは【array()】が必須です。
特定のタグを持つ投稿ページなら
<?php if( has_tag('タグID') ) : ?>
指定したタグを持つ投稿ページの場合に表示するコンテンツや処理を記載。
<?php else: ?>
それ以外のページで表示するコンテンツや処理を記載。
<?php endif; ?>
指定したタグと紐付けられた投稿かどうかで表示を切り替える条件分岐です。
特定のタグを持つ投稿ページなら(複数バージョン)
<?php if( has_tag( array('タグID', 'タグID') ) ) : ?>
指定したタグを持つ投稿ページの場合に表示するコンテンツや処理を記載。
<?php else: ?>
それ以外のページで表示するコンテンツや処理を記載。
<?php endif; ?>
指定するタグが複数の場合は、こちらのコードを使ってください。
タグIDを複数指定するときは【array()】が必須です。
日付別アーカイブページなら
<?php if( is_date() ) : ?>
日付別アーカイブページの場合に表示するコンテンツや処理を記載。
<?php else: ?>
それ以外のページで表示するコンテンツや処理を記載。
<?php endif; ?>
日付別アーカイブページかどうかで表示を切り替える条件分岐です。
日付別アーカイブページとは、日・月・年別の投稿一覧ページを指します。
年別アーカイブページなら
<?php if( is_year() ) : ?>
年別のアーカイブページの場合に表示するコンテンツや処理を記載。
<?php else: ?>
それ以外のページで表示するコンテンツや処理を記載。
<?php endif; ?>
年別のアーカイブページかどうかで表示を切り替える条件分岐です。
月別アーカイブページなら
<?php if( is_month() ) : ?>
月別のアーカイブページの場合に表示するコンテンツや処理を記載。
<?php else: ?>
それ以外のページで表示するコンテンツや処理を記載。
<?php endif; ?>
月別のアーカイブページかどうかで表示を切り替える条件分岐です。
日別アーカイブページなら
<?php if( is_day() ) : ?>
日別のアーカイブページの場合に表示するコンテンツや処理を記載。
<?php else: ?>
それ以外のページで表示するコンテンツや処理を記載。
<?php endif; ?>
日別のアーカイブページかどうかで表示を切り替える条件分岐です。
ユーザーアーカイブなら
<?php if( is_author() ) : ?>
ユーザーのアーカイブページの場合に表示するコンテンツや処理を記載。
<?php else: ?>
それ以外のページで表示するコンテンツや処理を記載。
<?php endif; ?>
ユーザーのアーカイブページかどうかで表示を切り替える条件分岐です。
特定のユーザーのアーカイブページなら
<?php if( is_author('ユーザーID') ) : ?>
指定した著者の投稿一覧ページの場合に表示するコンテンツや処理を記載。
<?php else: ?>
それ以外のページで表示するコンテンツや処理を記載。
<?php endif; ?>
指定ユーザーのアーカイブページかどうかで表示を切り替える条件分岐です。
【ユーザーID】の部分を指定するユーザーのユーザーIDに置き換えてください。
ユーザーIDの調べ方は【ユーザーIDの調べ方】で詳しく解説しています。
特定のユーザーのアーカイブページなら(複数バージョン)
<?php if( is_author( array('ユーザーID', 'ユーザーID') ) ) : ?>
指定した著者の投稿一覧ページの場合に表示するコンテンツや処理を記載。
<?php else: ?>
それ以外のページで表示するコンテンツや処理を記載。
<?php endif; ?>
指定するユーザーが複数の場合は、こちらのコードを使ってください。
ユーザーIDを複数指定するときは【array()】が必須です。
カスタム投稿関連の条件分岐
特定のカスタム投稿の投稿ページのみ
<?php if ( is_singular( 'カスタム投稿名' ) ): ?>
指定したカスタム投稿タイプの投稿ページの場合に表示するコンテンツや処理を記載。
<?php else: ?>
それ以外のページで表示するコンテンツや処理を記載。
<?php endif; ?>
指定したカスタム投稿の投稿ページかどうかで表示を切り替える条件分岐です。
【カスタム投稿名】の部分は、特定のカスタム投稿名に置き換えてください。
カスタム投稿名の調べ方は【カスタム投稿名の調べ方】で詳しく解説しています。
特定のカスタム投稿の投稿ページのみ(複数バージョン)
<?php if ( is_singular( array('カスタム投稿名','カスタム投稿名') ) ): ?>
指定したカスタム投稿タイプの投稿ページの場合に表示するコンテンツや処理を記載。
<?php else: ?>
それ以外のページで表示するコンテンツや処理を記載。
<?php endif; ?>
指定するカスタム投稿が複数の場合は、こちらのコードを使ってください。
カスタム投稿名を複数指定するときは【array()】が必須です。
カスタム投稿のアーカイブページなら
<?php if ( is_post_type_archive() ) : ?>
カスタム投稿タイプのアーカイブページの場合に表示するコンテンツや処理を記載。
<?php else: ?>
それ以外のページで表示するコンテンツや処理を記載。
<?php endif; ?>
カスタム投稿のアーカイブページかどうかで表示を切り替える条件分岐です。
特定のカスタム投稿タイプのアーカイブページなら
<?php if ( is_post_type_archive('カスタム投稿名') ) : ?>
指定したカスタム投稿タイプのアーカイブページの場合に表示するコンテンツや処理を記載。
<?php else: ?>
それ以外のページで表示するコンテンツや処理を記載。
<?php endif; ?>
指定したカスタム投稿のアーカイブページかどうかで表示を切り替える条件分岐です。
特定のカスタム投稿タイプのアーカイブページなら(複数バージョン)
<?php if ( is_post_type_archive( array('カスタム投稿名','カスタム投稿名') ) ) : ?>
指定したカスタム投稿タイプのアーカイブページの場合に表示するコンテンツや処理を記載。
<?php else: ?>
それ以外のページで表示するコンテンツや処理を記載。
<?php endif; ?>
指定するカスタム投稿が複数の場合は、こちらのコードを使ってください。
カスタム投稿名を複数指定するときは【array()】が必須です。
カスタムタクソノミー関連の条件分岐
カスタムタクソノミーのアーカイブページなら
<?php if ( is_tax() ) : ?>
カスタムタクソノミーのアーカイブページの場合に表示するコンテンツや処理を記載。
<?php else: ?>
それ以外のページで表示するコンテンツや処理を記載。
<?php endif; ?>
カスタムタクソノミーのアーカイブページかどうかで表示を切り替える条件分岐です。
特定のカスタムタクソノミーのアーカイブページなら
<?php if ( is_tax('カスタムタクソノミー名') ) : ?>
指定したカスタムタクソノミーのアーカイブページの場合に表示するコンテンツや処理を記載。
<?php else: ?>
それ以外のページで表示するコンテンツや処理を記載。
<?php endif; ?>
指定したカスタムタクソノミーのアーカイブページかどうかで表示を切り替える条件分岐です。
【カスタムタクソノミー名】の部分は、特定のカスタムタクソノミーの名前に置き換えてください。
カスタム投稿名の調べ方は【カスタムタクソノミー名の調べ方】で詳しく解説しています。
特定のカスタムタクソノミーのアーカイブページなら(複数バージョン)
<?php if ( is_tax( array('カスタムタクソノミー名','カスタムタクソノミー名') ) ) : ?>
指定したカスタムタクソノミーのアーカイブページの場合に表示するコンテンツや処理を記載。
<?php else: ?>
それ以外のページで表示するコンテンツや処理を記載。
<?php endif; ?>
指定するカスタム投稿が複数の場合は、こちらのコードを使ってください。
カスタムタクソノミー名を複数指定するときは【array()】が必須です。
特定のカスタムタクソノミーのタームと紐づいているかどうかで条件分岐
<?php $value = get_the_term_list( $post->ID, 'カスタムタクソノミー名');?>
<?php if(!empty($value)):?>
タームが指定されている場合に表示したいコンテンツや処理を記載。
<?php else: ?>
条件に値しないページで表示するコンテンツや処理を記載。
<?php endif; ?>
その投稿が指定したカスタムタクソノミーのタームと紐づいているかどいかで表示を切り替える条件分岐です。
【カスタムタクソノミー名】の部分は、特定のカスタムタクソノミーの名前に置き換えてください。
カスタム投稿名の調べ方は【カスタムタクソノミー名の調べ方】で詳しく解説しています。
カスタムフィールド関連の条件分岐
カスタムフィールドの値の有無で条件分岐
?php $value = get_post_meta($post->ID, 'カスタムフィールド名', true);?>
<?php if(!empty($value)):?>
空じゃない場合に表示するコンテンツや処理を記載。
<?php else:?>
空の場合の処理に表示するコンテンツや処理を記載。
<?php endif;?>
指定したカスタムフィールドに値が入っているかどうかで条件分岐します。
【カスタムフィールド名】の部分は、特定のカスタムフィールド名に置き換えてください。
カスタムフィールド名がtestの場合は【test】に置き換えます。
カスタムフィールドの値が空だった場合の条件分岐で、使い方などを詳しく解説しています。
カスタムフィールドの値が一致するかで条件分岐
<?php if(get_post_meta($post->ID,'カスタムフィールド名',true) == '文字列'): ?>
値が一致した場合に表示するコンテンツや処理を記載。
<?php else:?>
値が一致しない場合に表示するコンテンツや処理を記載。
<?php endif; ?>
指定したカスタムフィールドの値と指定した値が一致するかどうかで条件分岐します。
【カスタムフィールド名】の部分は、特定のカスタムフィールド名に置き換えてください。
詳しくは、カスタムフィールドの値が一致するかどうかで条件分岐する方法をご覧ください。
その他の条件分岐
検索結果ページなら
<?php if ( is_search() ) : ?>
検索ページの場合に表示するコンテンツや処理を記載。
<?php else: ?>
それ以外のページで表示するコンテンツや処理を記載。
<?php endif; ?>
検索結果ページかどうかで条件分岐します。
404ページなら
<?php if ( is_404() ) : ?>
404ページの場合に表示するコンテンツや処理を記載。
<?php else: ?>
それ以外のページで表示するコンテンツや処理を記載。
<?php endif; ?>
404ページかどうかで条件分岐します。
未分類の条件分岐
タグの有無で条件分岐する
<?php if(has_tag()==true) : ?>
タグがある場合に表示するコンテンツや処理を記載。
<?php else: ?>
タグが無い場合に表示するコンテンツや処理を記載。
<?php endif; ?>
タグの有無で条件分岐します。
アイキャッチの有無で条件分岐する
<?php if ( has_post_thumbnail() ): ?>
アイキャッチがある場合に表示するコンテンツや処理を記載。
<?php else: ?>
アイキャッチが無い場合に表示するコンテンツや処理を記載。
<?php endif; ?>
アイキャッチの有無で条件分岐します。
アイキャッチがない場合、デフォルト画像を表示させる場合などに使えます。
ログインの有無で条件分岐
<?php if( is_user_logged_in() ) : ?>
ユーザーがWordPressの管理画面にログインしている場合に表示するコンテンツや処理を記載。
<?php else : ?>
ユーザーがWordPressの管理画面にログインしていない場合に表示するコンテンツや処理を記載。
<?php endif; ?>
詳しくは、条件分岐でログインしているユーザーのみにコンテンツを表示させるをご覧ください。
抜粋の有無で条件分岐
<?php $excerpt = get_the_excerpt(); if ( has_excerpt() ) : ?>
抜粋に値がある場合に表示するコンテンツや処理を記載。
<?php else : ?>
抜粋に値が無い場合に表示するコンテンツや処理を記載。
<?php endif; ?>
詳しくは、抜粋が未入力の場合でも、本文の冒頭を自動的に表示しないをご覧ください。
指定した件数より投稿の記事数が多いか少ないかで条件分岐
<?php
$count_posts = wp_count_posts();
$posts = $count_posts->publish;
if (5 < $posts):
?>
指定した件数より投稿の記事数が多い場合に表示するコンテンツや処理を記載。
<?php else : ?>
指定した件数より投稿の記事数が少ない場合に表示するコンテンツや処理を記載。
<?php endif; ?>
赤文字の【5】の部分が件数を指定している部分です。
3件より多いか少ないかで分岐したい場合は、【3】に変更してください。
IPアドレスで条件分岐
<?php if ( $_SERVER['REMOTE_ADDR'] === "***.***.***.***" ): ?>
指定したIPアドレスの場合に表示するコンテンツを記載。
<?php endif; ?>
『***.***.***.***』の部分をIPアドレスに置き換えてください。
まとめ
WordPressの条件分岐を42個まとめてみました!
テーマのカスタマイズを行うとき、条件分岐はよく使うかと思います。
今回は私が実際によく使っている条件を42個まとめてみました。
どなたかの参考になると幸いです。
コメントを残す