WordPressのカスタムで、特定のページやカテゴリに属するページには問合せフォームを表示させたいなど、条件分岐に関して良く使うかなってものを載せてみます。 検索すればいっぱいでてくる内容ではありますが、ご参考にどうぞ!
トップページとそれ以外のページの条件分岐
<?php if( is_home() || is_front_page() ) : ?>
トップページで表示
<?php else: ?>
それ以外のページで表示
<?php endif; ?>
設定→表示設定で、フロントページを特定の固定ページに設定してしてある場合もあるので、is_home()とis_front_page()を記述すると良いでしょう。
投稿ページと固定ページでの条件分岐
投稿ページではis_single()固定ページではis_page()を使用します。
・投稿ページの条件分岐
<?php if( is_single() ) : ?>
投稿ページで表示
<?php else: ?>
それ以外のページで表示
<?php endif; ?>
・固定ページの条件分岐
<?php if( is_page() ) : ?>
固定ページで表示
<?php else: ?>
それ以外のページで表示
<?php endif; ?>
おまけで特定の投稿ページにのみ表示させたい場合は、下記のようになります。
・投稿ページのIDを指定して条件分岐
<?php if( is_single('投稿ID') ) : ?>
投稿ページで表示
<?php else: ?>
それ以外のページで表示
<?php endif; ?>
is_single(‘投稿ID’)で、該当する投稿ページのIDを記述してください。 固定ページの場合はis_page(‘投稿ID’)と記述。
・複数の指定した投稿ページで条件分岐
<?php if( is_single( array('投稿ID','投稿ID','投稿ID') ) ) : ?>
投稿ページで表示
<?php else: ?>
それ以外のページで表示
<?php endif; ?>
固定ページの場合は、is_pageに書き換えてください。この後のカテゴリーなんかも同じ要領でやってみてください。
アーカイブやカテゴリーページでの条件分岐
・アーカイブページの条件分岐
<?php if( is_archive() ) : ?>
アーカイブページで表示
<?php else: ?>
それ以外のページで表示
<?php endif; ?>
・カテゴリーページの条件分岐
<?php if( is_category() ) : ?>
カテゴリーページで表示
<?php else: ?>
それ以外のページで表示
<?php endif; ?>
カテゴリーに関するイメージ画像や説明文など表示するのに使ってみるのもいいかもしれませんね。
カスタム投稿の条件分岐
・カスタム投稿の条件分岐
<?php if( is_singular('カスタム投稿名') ) : ?>
カスタム投稿のページで表示
<?php else: ?>
それ以外のページで表示
<?php endif; ?>
・カスタムタクソノミーの条件分岐
<?php if( is_tax('カスタム投稿名') ) : ?>
カスタムタクソノミーのアーカイブページで表示
<?php else: ?>
それ以外のページで表示
<?php endif; ?>
カスタム投稿のページでもこのような形で条件分岐できます。
そのほかの条件分岐
・ログインの有無での条件分岐
<?php if( is_user_logged_in() ) : ?>
ユーザーがログイン時に表示
<?php else: ?>
それ以外の表示
<?php endif; ?>
会員制サイトなどで、ユーザーがログインした場合に、「ようこそ○○さん」みたな表示であったり、公開範囲をゲストとユーザー毎に変えたりに使えます。
・アイキャッチ画像の有無で条件分岐
<?php if( has_post_thumbnail() ) : ?>
アイキャッチ画像がある場合に表示
<?php else: ?>
それ以外の表示
<?php endif; ?>
アイキャッチが無い場合のデフォルト画像を用意して表示したい時などに使ってみてください。
・検索ページの条件分岐
<?php if( is_search() ) : ?>
検索ページでの表示
<?php else: ?>
それ以外の表示
<?php endif; ?>
・カスタムフィールドの値の有無で条件分岐
<?php $value = get_post_meta($post->ID, 'カスタムフィールド名', true) ?>
<?php if(!empty($value)): ?>
カスタムフィールドの値がある場合に表示
<?php else: ?>
それ以外の表示
<?php endif; ?>
カスタムフィールドの値があればそのまま表示でもいいですが、値が空の場合は別のテキストや画像など用意すると良いかと思います。
複数の条件分岐
こんな感じでそれぞれのページ毎に条件分岐させる事ができます。
<?php if( is_home() || is_front_page() ) : ?>
フロントページで表示
<?php elseif( is_single() ) : ?>
投稿ページで表示
<?php elseif( is_page() ) : ?>
固定ページで表示
<?php else: ?>
それ以外のページで表示
<?php endif; ?>
他にも様々な内容での条件分岐は考えられますが、これくらいは覚えておくと役に立つかと思います。
