WordPressで覚えておきたい条件分岐タグまとめ

WordPressでは条件分岐タグを使って特定の条件の時だけ処理を変更するといったことが出来ます。

例えばパソコンとスマホで表示の有無を切り替えたり、トップページだけ特定の項目を表示するという感じです。

条件分岐タグは正直山ほどありますが、中でもよく使うものはある程度限られています。

今回は使用頻度が高い条件分岐タグを紹介します。

 

条件分岐の書き方

まずはWordPressだけではなく、PHP全てに言えることですが、条件分岐には書き方があります。

<?php if(条件1):?>
    条件1に当てはまる場合
<?php elseif(条件2):?>
    条件2に当てはまる場合
<?php else:?>
    条件1にも条件2にも当てはまらない場合
<?php endif;?>

 

条件分岐はPHPのif文を使って行います。

「()のなかに特定の条件を記述し、それに当てはまる場合は処理を行う」という塊を作り、処理を分けます。

条件を増やしたいときはelseif、最後の条件はelseと書きます。

 

また、条件は複数指定することができます。

以下の場合は条件1、もしくは条件2のどちらかを満たす場合です。||(パイプ)2本で区切って指定します。

<?php if(条件1 || 条件2):?>
    条件1もしくは条件2に当てはまる場合
<?php endif;?>

 

以下の場合は条件1と条件2のどちらも満たす場合です。&&で区切って指定します。

<?php if(条件1 && 条件2):?>
条件1と条件2、両方に当てはまる場合
<?php endif;?>

 

以下の場合は条件1と条件2が同じになる場合です。==で区切って指定します。

<?php if(条件1 == 条件2):?>
条件1と条件2が等しい場合
<?php endif;?>

 

以下の場合は条件1と条件2が同じにならない場合です(同じにならない場合に処理を行う)。!==で区切って指定します。

<?php if(条件1 !== 条件2):?>
条件1と条件2が等しくない場合
<?php endif;?>

 

以下の場合は条件1が当てはならない場合です。!で区切って指定します。

<?php if(!条件1):?>
条件1ではない場合
<?php endif;?>

 

使用頻度が高い条件分岐タグ

条件分岐の書き方がわかったところでWordPressの条件分岐タグを紹介します。

 

トップページのみ

トップページの時のみ処理を行う場合は以下のように記述します。

<?php if (  is_front_page() ||  is_home() ) : ?>
トップページで行う処理を書く
<?php endif; ?>

 

is_front_page()、is_home()のどちらかだけの指定でも構いません。

 

固定ページ

全ての固定ページで処理を行う場合は以下のように記述します。

<?php if ( is_page() ) : ?>
全ての固定ページで行う処理を書く
<?php endif; ?>

 

また、特定の固定ページにだけ処理を行うこともできます。

IDを指定して特定の固定ページだけ処理を行うには以下のように記述します。()内の数字がIDです。

<?php if ( is_page(5) ) : ?>
IDが5の固定ページで行う処理を書く
<?php endif; ?>

 

スラッグを指定して特定の固定ページだけ処理を行うには以下のように記述します。スラッグはシングルクォーテーションで囲みましょう。

<?php if ( is_page('about') ) : ?>
スラッグが「about」の固定ページで行う処理を書く
<?php endif; ?>

 

タイトル指定して特定の固定ページだけ処理を行うには以下のように記述します。ただ、コードに日本語を入れるのはあまり好ましくないので、できればIDやスラッグで指定したほうがいいと思います。

<?php if ( is_page('このサイトについて') ) : ?>
タイトルが「このサイトについて」の固定ページで行う処理を書く
<?php endif; ?>

 

固定ページを複数指定したい場合は以下のように記述します。array()を使って配列として指定します。指定はID、スラッグ、タイトルのいずれでもかまいません。

<?php if ( is_page(array(5,'about','このサイトについて')) ) : ?>
IDが「5」、もしくはスラッグが「about」、もしくはタイトルが「このサイトについて」の固定ページで行う処理を書く
<?php endif; ?>

 

投稿ページ

全ての投稿ページで処理を行う場合は以下のように記述します。

<?php if ( is_single() ) : ?>
全ての個別投稿ページで行う処理を書く
<?php endif; ?>

 

投稿ページもまた特定のページだけ処理を行うことが出来ます。指定の仕方は固定ページの場合と同じです。

IDを指定して特定の固定ページだけ処理を行うには以下のように記述します。

<?php if ( is_single(1) ) : ?>
IDが1の個別投稿ページで行う処理を書く
<?php endif; ?>

 

スラッグを指定して特定の固定ページだけ処理を行うには以下のように記述します。

<?php if ( is_single('hello-world') ) : ?>
スラッグが「hello-world」の個別投稿ページで行う処理を書く
<?php endif; ?>

 

タイトルを指定して特定の固定ページだけ処理を行うには以下のように記述します。

<?php if ( is_single('Hello world!') ) : ?>
タイトルが「Hello world!」の個別投稿ページで行う処理を書く
<?php endif; ?>

 

投稿ページを複数指定したい場合は以下のように記述します。

<?php if ( is_single(array(1,'hello-world','Hello world!')) ) : ?>
IDが「1」、もしくはスラッグが「hello-world」、もしくはタイトルが「Hello world!」の個別投稿ページで行う処理を書く
<?php endif; ?>

 

アーカイブページ

アーカイブページにはアーカイブはもちろん、カテゴリー、タグ、日付など全てのアーカイブページが含まれます。

<?php if ( is_arhive() ) : ?>
アーカイブページで行う処理を書く
<?php endif; ?>

 

カテゴリーページ

全てのカテゴリーページで処理を行う場合は以下のように記述します。

<?php if ( is_category() ) : ?>
カテゴリーページで行う処理を書く
<?php endif; ?>

 

カテゴリーページも特定のカテゴリーだけ処理を行うように分岐することが出来ます。

IDを指定して特定のカテゴリーページだけ処理を行うには以下のように記述します。

<?php if ( is_category(2) ) : ?>
IDが「2」のカテゴリーページで行う処理を書く
<?php endif; ?>

 

スラッグを指定して特定のカテゴリーページだけ処理を行うには以下のように記述します。

<?php if ( is_category('sports') ) : ?>
スラッグが「sports」のカテゴリーページで行う処理を書く
<?php endif; ?>

 

カテゴリー名を指定して特定のカテゴリーページだけ処理を行うには以下のように記述します。

<?php if ( is_category('スポーツ') ) : ?>
カテゴリー名が「スポーツ」のカテゴリーページで行う処理を書く
<?php endif; ?>

 

カテゴリーページを複数指定したい場合は以下のように記述します。

<?php if ( is_category( array(2,'sports','スポーツ') ) ) : ?>
//IDが「2」、もしくはスラッグが「sports」、もしくはカテゴリー名が「スポーツ」というカテゴリーページで行う処理を書く
<?php endif; ?>

 

タグページ

全てのタグページで処理を行う場合は以下のように記述します。

<?php if ( is_tag() ) : ?>
タグページで行う処理を書く
<?php endif; ?>

 

IDを指定して特定のタグページだけ処理を行うには以下のように記述します。

<?php if ( is_tag(6) ) : ?>
IDが「6」のタグページで行う処理を書く
<?php endif; ?>

 

スラッグを指定して特定のタグページだけ処理を行うには以下のように記述します。

<?php if ( is_tag('blog') ) : ?>
スラッグが「blog」のタグページで行う処理を書く
<?php endif; ?>

 

タグ名を指定して特定のタグページだけ処理を行うには以下のように記述します。

<?php if ( is_tag('ブログ') ) : ?>
タグ名が「ブログ」のカテゴリーページで行う処理を書く
<?php endif; ?>

 

タグページを複数指定したい場合は以下のように記述します。

<?php if ( is_category( array(6,'blog','ブログ') ) ) : ?>
//IDが「6」、もしくはスラッグが「blog」、もしくはタグ名が「ブログ」というタグページで行う処理を書く
<?php endif; ?>

 

検索結果ページ

検索欄で検索をかけた結果のページのみ処理を行う場合は以下のように記述します。

<?php if ( is_search() ) : ?>
検索結果ページで行う処理を書く
<?php endif; ?>

 

404ページ

404エラーページでのみ処理を行う場合は以下のように記述します。

<?php if ( is_404() ) : ?>
404ページで行う処理を書く
<?php endif; ?>

 

アイキャッチ画像

アイキャッチ画像がある場合はそれを表示、ない場合はデフォルトで表示される画像を表示といったようにアイキャッチの有無で表示する画像や処理を切り替えたい場合は以下のように記述します。

<?php if ( has_post_thumbnail() ) : ?>
アイキャッチ画像指定されている場合
<?php the_post_thumbnail(); ?>
<?php else: ?>
アイキャッチ画像指定されていない場合に代替画像を表示
<?php endif; ?>

 

カスタム投稿タイプのアーカイブページ

全てのカスタム投稿タイプで処理を行う場合は以下のように記述します。

<?php if ( is_post_type_archive() ) : ?>
カスタム投稿タイプの一覧ページで行う処理を書く
<?php endif; ?>

 

スラッグを指定して特定のカスタム投稿タイプだけ処理を行うには以下のように記述します。

<?php if ( is_post_type_archive('news') ) : ?>
投稿タイプが「news」のアーカイブページで行う処理を書く
<?php endif; ?>

 

カスタム投稿タイプを複数指定したい場合は以下のように記述します。

<?php if ( is_post_type_archive( array('news','event') ) ) : ?>
投稿タイプが「news」、もしくは「event」のアーカイブページで行う処理を書く
<?php endif; ?>

 

カスタムタクソノミー

全てのカスタムタクソノミーで処理を行う場合は以下のように記述します。

<?php if ( is_tax() ) : ?>
カスタム分類「news_cat」の一覧ページで行う処理を書く
<?php endif; ?>

 

スラッグを指定して特定のカスタムタクソノミーだけ処理を行うには以下のように記述します。

<?php if ( is_tax('works') ) : ?>
カスタム分類が「works」のアーカイブページで行う処理を書く
<?php endif; ?>

 

カスタムタクソノミーを複数指定したい場合は以下のように記述します。

<?php if ( is_tax( array('works','private') ) ) : ?>
カスタム分類が「works」、もしくは「private」のアーカイブページで行う処理を書く
<?php endif; ?>

 

スマホ表示

スマホで表示された時だけ処理を行う場合は以下のように記述します。レスポンシブデザインの時に使えますね。

<?php if ( wp_is_mobile() ) : ?>
モバイル(スマホ・タブレット)で行う処理を書く
<?php endif; ?>

 

まとめ

WordPressでよく使う条件分岐タグは大体こんな感じです。

もちろん他にも色々タグはありますが、実際に自分でカスタマイズする時にこれくらい知っていれば十分です。他の条件分岐のタグはWordPress Codexに書いてあるので興味のある人は見てみてください。

条件分岐を使ってWordPressをどんどんカスタマイズしていきましょう。