よく使う条件分岐タグ_WordPress

最終更新日

出力内容の出し分けやページ毎にスタイルを変更したい場合によく使う条件分岐タグですが、ぜんぜん頭に入ってこないのでいくつかまとめました。

TOPページ

<?php if ( is_front_page() && is_home() ) : ?>
   //デフォルトホームページ
<?php endif; ?>
<?php if ( is_front_page() ) : ?>
   //固定ペーシを使ったホームページ
<?php endif; ?>
<?php if ( is_home() ) : ?>
   //ブログページ
<?php endif; ?>

固定ページ

<?php if ( is_page() ) : ?>
   //固定ページ
<?php endif; ?>

アーカイブページ

<?php if ( is_archive() ) : ?>
   //アーカイブページ
<?php endif; ?>
<?php if ( is_post_type_archive() ) : ?>
   //投稿タイプで分岐
<?php endif; ?>
<?php if ( is_category() ) : ?>
   //カテゴリーで分岐
<?php endif; ?>
<?php if ( is_tag() ) : ?>
   //タグで分岐
<?php endif; ?>
<?php if ( is_tax() ) : ?>
   //タクソノミーで分岐
<?php endif; ?>

シングルページ

<?php if ( is_single() ) : ?>
   //IDで分岐
<?php endif; ?>
<?php if ( in_category() ) : ?>
   //指定のカテゴリーに属するシングルページ
<?php endif; ?>
<?php if ( is_singular( 'custom-post-type' ) ) : ?>
   //指定のカスタム投稿タイプのシングルページ
<?php endif; ?>

ログイン済みユーザーのみ

テスト環境がなく、本番環境での直接の更新が必要な場合に使えるタグです。

<?php if ( is_user_logged_in() ) : ?>
   //ログインしたユーザーのみに表示される
<?php endif; ?>

基本的な使い方

<?php if ( is_page('7') ) : ?>
   //IDを指定した分岐
<?php endif; ?>

<?php if ( is_page('Title') ) : ?>
   //タイトルを指定した分岐
<?php endif; ?>

<?php if ( is_page('slug') ) : ?>
   //スラッグを指定した分岐
<?php endif; ?>
//同じ内容の条件分岐をまとめて記述
<?php if ( is_page( array( 7, 'Title', 'slug' ) ) ) : ?>
   //条件のID、タイトル、スラッグのいずれかに当てはまる場合
<?php endif; ?>
//異なる内容の条件分岐をまとめて記述
<?php if ( 条件1 ) : ?>
   //条件1
<?php elseif ( 条件2 ) : ?>
   //条件2
<?php else: ?>
   //1.2のいずれにも当てはまらない
<?php endif; ?>
//その他複数条件などの記述方法
<?php if ( ! is_page('7') ) : ?>
   //ID7ではない場合
<?php endif; ?>

<?php if ( is_archive() && ! is_category( 'news' ) ) : ?>
   //カテゴリー"news"を除く、カテゴリーアーカイブページの場合
   //&&はどちらの条件も満たす場合の記述(and)
<?php endif; ?>

<?php if ( is_post_type_archive( 'fruits' ) || is_category( 'news' ) ) : ?>
   //カスタム投稿タイプ"fruits"のアーカイブ、またはカテゴリー"news"のアーカイブの場合
   //||はどちらかの条件が当てはまる場合の記述(or)
<?php endif; ?>

まだいろいろとありそうですが…なにせ頭に入ってこないので、どのタグをよく使うかもちょっとあやふやです。
気がついたらまた記事を更新します。

参考リンク

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

コメントする