よく利用するwordpressの条件分岐タグまとめ

よく利用するwordpressの条件分岐タグまとめ

WordPressをカスタマイズしていくとトップページでは「サイドバーを表示したくない」がその他のページにはサイドバーを表示したい等ページごとに表示したい内容が変わってくることと思います。

そこで今回ご紹介させていただく「条件分岐タグ」が必要となってきます。

条件分岐タグ」はたくさんあり正直覚えきれませんが、よく使うものはある程度絞られてきますので、今回は私がよく利用する「覚えておきたい」という条件分岐タグをまとめてみました。

条件分岐タグの基本的な書き方

WordPress独自の条件分岐タグを利用して書く必要がありますので注意が必要です。

基本的な書き方は下記になります。

基本

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

条件が1つであれば「elseif」「else」は省略することは可能です。逆に条件を増やしたい場合は「elseif」で増やすことができます。

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

条件1〜条件3内に書く方法は下記になります。

フロントページ

if ( is_front_page() && is_home() ) {
// デフォルトホームページ
} elseif ( is_front_page() ) {
// 固定ペーシを使ったホームページ
} elseif ( is_home() ) {
// ブログページ
} else {
// それ以外
}

個別投稿ページ

if ( is_single() ) {}
//個別投稿のページ(または添付ファイルページ・カスタム投稿タイプの個別ページ)が表示されている場合。固定ページには適用されない。

if ( is_single('20') ) {}
//ID 20の投稿が表示されている場合。

if ( is_single( 'Post 03' ) ) {}
//"Post 03" というタイトルの投稿が表示されている場合。

if ( is_single( 'post-01' ) ) {}
//"post-01" という投稿スラッグの投稿が表示されている場合。

if ( is_single( array( 17, 'post-01', 'Post 03' ) ) ) {}
//ID が 17、投稿スラッグが "post-01"、またはタイトルが "Post 03" のいずれかにあてはまる投稿が表示されている場合。

if ( is_single( array( 17, 19, 1, 11 ) ) ) {}
//シングルポストのpost IDが17か19か1か11かのどちらかの場合。

if ( is_single( array( 'post-01', 'post-02', 'post-03' ) ) ) {}
//シングルポストのpost_nameが"post-01"、"post-02" または"post-03"のいずれかの場合

if ( is_single( array( 'Post 01', 'Post 02', 'Post 03' ) ) ) {}
//シングルポストはpost_titleが "Post 01"、"Post 02"または"Post 03"のいずれかの場合

固定ページ

if ( is_page() ) {}
//固定ページが表示されている場合。

if ( is_page( '20' ) ) {}
//ID 20の固定ページが表示されている場合。

if ( is_page( 'About Us' ) ) {}
//"About Us"というタイトルの固定ページが表示されている場合。

if ( is_page( 'about-us' ) ) {}
//"about-us"という投稿スラッグの固定ページが表示されている場合。

if ( is_page( array( 42, 'about-us', 'About Us' ))) {}
//ID が 42、投稿スラッグが "about-us"、またはタイトルが "About Us" のいずれかにあてはまる固定ページが表示されている場合。

if ( is_page( array( 20, 45, 1 ) ) ) {}
//ID が 20、45、または1のいずれかの固定ページが表示されている場合。

カテゴリーページ

if ( is_category() ) {}
//ページが $category カテゴリーと関連付けられている場合。

if ( is_category( '1' ) ) {}
//カテゴリーID 1のアーカイブページが表示されている場合。

if ( is_category( 'Post Category' )) {} 
//"Post Category"というカテゴリーのアーカイブページが表示されている場合。

if ( is_category( 'post-category' ) ) {}
//"post-category"というカテゴリースラッグのアーカイブページが表示されている場合。

if ( is_category( array( 1, 'post-category', 'Post Category' ) ) ) {}
//投稿のカテゴリーが term_ID 1、スラッグが "post-category" の場合、カテゴリー名が "Post Category" のいずれかにあてはまる場合、真を返す。

if ( in_category( '1' ) ) {}
//(注: in_category です。) 現在の投稿がカテゴリーID 1に属する場合に true を返します。 

if ( in_category( array( 1,2,3 ) ) ) {} 
//現在の記事が、カテゴリID 1、2、3のいずれかに属している場合は true を返します。

if ( !in_category( array( 4,5,6 ) ) ) {} 
//現在の記事が、カテゴリID 4、5、6のいずれにも属していない場合は true を返します。先頭に「!」が付くことに注目してください。

タグページ

if ( is_tag() ) {}
//タグのアーカイブページが表示されている場合。

if ( is_tag( 'tag-archive' ) ) {}
//'tag-archive' というスラッグのついたタグのアーカイブページが表示されている場合。

if ( is_tag( array( 'tag-archive', 'blog-tag', 'extra-tag' ) )  ) {}
//'tag-archive' または 'blog-tag' または 'extra-tag' というスラッグのついたタグのアーカイブページが表示されている場合。

アーカイブページ

if ( is_archive() ) {}
//各アーカイブページが表示されている場合。

404

if ( is_404() ) {}
"HTTP 404: Not Found"エラーページが表示されている場合。

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

<?php if (is_post_type_archive('投稿タイプ名')): ?>
  //コンテンツ表示部分
<?php endif; ?>

まとめ

条件分岐を利用するとレイアウトやデザインを変えることができるようになりWordpressのカスタマイズが楽しくなると思います!
まだまだたくさん条件分岐タグはあるので必要に応じて覚えていくといいでしょう!
条件分岐タグ – WordPress Codex 日本語版 –

この記事を書いた人

connecti

CONNECTIは人と人を繋ぐ架け橋になるという思いで創業しました。

制作のご相談等は下記よりお願いいたします。

お手数ではございますが、下記リンクよりお問い合わせください。

お問い合わせフォームはこちら

関連記事