WordPress 便利な条件分岐の書き方
WordPressには便利で実用的な条件分岐のタグがあります。
使いたい時についつい忘れがちなので、自分のためにもまとめてみました。
目次
基本的な条件分岐の書き方
phpのif文で書く
<?php if (条件) : ?> 条件に合う時の処理を書く <?php else: ?> 条件に合わない時の処理を書く <?php endif; ?>
基本的にはphpのif文で構成します。
条件に合わない時の処理が必要ないときは、elseを省略可能。
elseifで条件分岐を追加
<?php if ( is_page() ) : ?> A.固定ページでの処理を書く <?php elseif ( is_single() ) : ?> B.投稿ページでの処理を書く <?php else: ?> A、Bのどちらでもない時の処理を書く <?php endif; ?>
elseifは複数追加が可能。条件が複数ある場合に追加していきます。
「!」を前に入れると「◯◯ではないとき」の分岐になる
<?php if ( !is_single() ) : ?> 投稿ページではない時の処理を書く <?php endif; ?>
「!」を頭に記載すると、否定を意味するif文になります。
必ず半角で記載してください。
複数の条件を使う場合
<?php if ( is_page() && !is_home() ) : ?> 固定ページかつTOPではない時の処理を書く <?php endif; ?>
&&
はANDの意味になります。
<?php if ( is_single() || is_archive() ) : ?> 投稿ページもしくはアーカイブページの時の処理を書く <?php endif; ?>
||
はORの意味になります。
ホーム(トップページ)だけの場合
<?php if ( is_home() || is_front_page() ) : ?> ホームのみで表示する時の処理を書く <?php else: ?> それ以外のページで表示する時の処理を書く <?php endif; ?>
トップのみでそれ以外のページでは何もしない場合は、<?php else: ?>
は省略可能。
ホームの1ページ目だけに処理をする場合
<?php if( ( is_home() || is_front_page() ) && !is_paged() ) : ?> ホームの1ページ目だけに表示する時の処理を書く <?php endif; ?>
ホームかつ1ページ目の場合という分岐で1ページ目だけに表示させます。
固定ページだけの場合
<?php if ( is_page() ) : ?> 固定ページでのみで表示する時の処理を書く <?php else: ?> それ以外のページで表示する時の処理を書く <?php endif; ?>
特定の固定ページだけの場合
<?php if( is_page('ページID') ) : ?> 特定の固定ページでのみで表示する時の処理を書く <?php else: ?> それ以外のページで表示する時の処理を書く <?php endif; ?>
記事ページだけの場合
<?php if ( is_single() ) : ?> 記事ページでのみで表示する時の処理を書く <?php else: ?> それ以外のページで表示する時の処理を書く <?php endif; ?>
特定の記事ページだけの場合
<?php if( is_single('投稿ID') ) : ?> 特定の記事でのみ表示する時の処理を書く <?php else: ?> それ以外のページで表示する時の処理を書く <?php endif; ?>
例えば、<? php if ( is_single('10') ) : ?>
と書きます。
特定の記事ページが複数の場合
<?php if( is_single( array('投稿ID','投稿ID','投稿ID') ) ) : ?> 特定の記事でのみ表示する時の処理を書く <?php else: ?> それ以外のページで表示する時の処理を書く <?php endif; ?>
例えば、<?php if( is_single( array('10','20','30') ) ): ?>
と書きます。
追加する場合は、,
と投稿IDを足していきます。
固定ページの場合も同様です。
投稿IDを調べる方法
「投稿一覧」や「固定ページ一覧」で、該当の投稿にマウスポインターを合わせると、下記のようにIDがわかります。
アーカイブページだけの場合
<?php if( is_archive() ) : ?> アーカイブページでのみで表示する時の処理を書く <?php else: ?> それ以外のページで表示する時の処理を書く <?php endif; ?>
アーカイブページの1ページ目だけの場合
<?php if( is_archive() && !is_paged() ) : ?> アーカイブの1ページ目でのみで表示する時の処理を書く <?php endif; ?>
ホームの1ページ目だけと同様に、&& !is_paged()
を追加します。
else:
は省略しています。
カテゴリーアーカイブページのみの場合
<?php if( is_category() ) : ?> カテゴリーアーカイブページでのみ表示する時の処理を書く <?php else: ?> それ以外のページで表示するする時の処理を書く <?php endif; ?>
カテゴリーアーカイブページの1ページ目だけの場合
<?php if( is_category() && !is_paged() ) : ?> カテゴリーアーカイブページの1ページ目でのみ表示する時の処理を書く <?php endif; ?>
同様に、&& !is_paged()
を追加します。
else:
は省略しています。
特定のカテゴリーアーカイブページのみの場合
<?php if( is_category('カテゴリーIDまたはカテゴリースラッグ') ) : ?> 指定したカテゴリーページでのみで表示する時の処理を書く <?php else: ?> それ以外のページで表示する時の処理を書く <?php endif; ?>
カテゴリーIDの調べ方
「カテゴリー」で一覧にある該当のカテゴリーにマウスポインターを合わせるとIDがわかります。
スラッグも一覧に表示されています。
特定のカテゴリーに属する記事ページのみの場合
特定のカテゴリーに属する記事ページの場合は、is_category
ではなく、in_category
になります。
<?php if( in_category('カテゴリーID') ) : ?> 指定したカテゴリーに属する記事でのみ表示する時の処理を書く <?php else: ?> それ以外のページで表示する時の処理を書く <?php endif; ?>
特定の記事ページが複数の場合
<?php if( in_category( array('カテゴリーID', 'カテゴリーID') ) ) : ?> 指定したカテゴリーに属するページでのみ表示する時の処理を書く <?php else: ?> それ以外のページで表示する時の処理を書く <?php endif; ?>
同様にカテゴリーIDはスラッグに置き換えても使用可能。
タグアーカイブページのみの場合
<?php if( is_tag() ) : ?> タグページでのみで表示する時の処理を書く <?php else: ?> それ以外のページで表示する時の処理を書く <?php endif; ?>
特定のタグアーカイブページページのみ
<?php if( is_tag('タグID') ) : ?> 指定したタグページで表示する時の処理を書く <?php else: ?> それ以外のページで表示する時の処理を書く <?php endif; ?>
特定のタグを持つ記事ページのみの場合
特定のタグを持つ記事ページの場合は、is_tag
ではなく、has_tag
になります。
<?php if( has_tag('タグID') ) : ?> 指定したタグを持つ記事ページでで表示する時の処理を書く <?php else: ?> それ以外のページで表示する時の処理を書く <?php endif; ?>
同様にタグIDはスラッグに置き換えても使用可能。
日付別のアーカイブページのみの場合
<?php if( is_date() ) : ?> 日・月・年別の記事一覧ページで表示する時の処理を書く <?php else: ?> それ以外のページで表示する時の処理を書く <?php endif; ?>
年別の場合
<?php if( is_year() ) : ?> 年別の記事一覧ページで表示する時の処理を書く <?php endif; ?>
月別の場合
<?php if( is_month() ) : ?> 月別の記事一覧ページで表示する時の処理を書く <?php endif; ?>
日別の場合
<?php if( is_day() ) : ?> 日別の記事一覧ページで表示する時の処理を書く <?php endif; ?>
著者別の記事一覧ページのみの場合
<?php if( is_author() ) : ?> 著者別の記事一覧ページでのみで表示する時の処理を書く <?php else: ?> それ以外のページで表示する時の処理を書く <?php endif; ?>
is_author('5')
というようにユーザーIDを指定します。
ユーザーIDを調べる方法
「ユーザー一覧」で該当のユーザーにマウスポインターを合わせると、下記のようにIDがわかります。
モバイルとPCで表示を切り替える場合
モバイルの判別の時は、wp_is_mobile
と書きます。
<?php if( wp_is_mobile() ) : ?> モバイルのページのみで表示する時の処理を書く <?php else: ?> PCのページで表示する時の処理を書く <?php endif; ?>
モバイルの判別についてはこちらもご確認ください。
WordPressでPCとスマートフォンの表示を切り替える場合
検索結果ページのみの場合
<?php if( is_search() ) : ?> 検索ページでで表示する時の処理を書く <?php else: ?> それ以外のページで表示する時の処理を書く <?php endif; ?>
404ページのみの場合
<?php if( is_404() ) : ?> 404ページでで表示する時の処理を書く <?php else: ?> それ以外のページで表示する時の処理を書く <?php endif; ?>
上記以外の条件分岐や詳細はWordPressのオフィシャルページを確認するのが良いでしょう。