WordPress 便利な条件分岐の書き方

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がわかります。

投稿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がわかります。
スラッグも一覧に表示されています。

カテゴリー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がわかります。

ユーザーIDを調べる方法

モバイルとPCで表示を切り替える場合

モバイルの判別の時は、wp_is_mobileと書きます。

<?php if( wp_is_mobile() ) : ?>

モバイルのページのみで表示する時の処理を書く

<?php else: ?>

PCのページで表示する時の処理を書く

<?php endif; ?>

 

モバイルの判別についてはこちらもご確認ください。

検索結果ページのみの場合

<?php if( is_search() ) : ?>

検索ページでで表示する時の処理を書く

<?php else: ?>

それ以外のページで表示する時の処理を書く

<?php endif; ?>

 

404ページのみの場合

<?php if( is_404() ) : ?>

404ページでで表示する時の処理を書く

<?php else: ?>

それ以外のページで表示する時の処理を書く

<?php endif; ?>

 

上記以外の条件分岐や詳細はWordPressのオフィシャルページを確認するのが良いでしょう。