2020.08.17
よく使うwordpressの条件分岐タグ
例えば、カテゴリーページではタイトルは「カテゴリー:〇〇」、タグページでは「タグ:〇〇」のように、表示しているページによってタイトルを変えたい場合があります。それぞれのテンプレート(category.phpやtag.phpなど)を制作すればいいんですが、デザインフォーマットが同じなら、条件分岐で切り替えたほうが、更新や修正など効率的です。
条件式とは
条件式とは、もしトップページだったらヘッダーイメージを表示、それ以外のページだったら表示しない。といった条件によって処理を変えるためのものです。
条件式の書き方:「もしAなら○○を実行」
下記のコードは、もし条件Aなら処理Aを。条件Aではなく条件Bなら処理Bを、それ以外なら処理Cを実行するという内容です。条件Aの場合しか処理を行わないなら、elseif():
やelse:
は省略できます。
<?php if( 条件A ): ?> //処理A:条件1の場合の処理 <?php elseif( 条件B ): ?> //処理B:条件1ではなく条件2の場合の処理 <?php else: ?> //処理C:条件1でも条件2でもない場合の処理 <?php endif(); ?>
条件が2つ以上ある場合:「AまたはB」、「AかつB」
条件Aか条件Bのどちらかの場合(or)
<?php if( 条件A || 条件B ): ?>
条件Aと条件Bの両方を満たしている場合(and)
<?php if( 条件A && 条件B ): ?>
条件を満たさない場合:「Aじゃない場合」
<?php if( !条件A ): ?>
よく使うページに関する条件分岐タグ
表示しているページによって処理を変えるための条件分岐タグです。
トップページ:is_front_page() && is_home()
<?php if ( is_front_page() && is_home() ): ?>
トップページを条件にしたい場合はis_front_page()
とis_home()
両方必要です。厳密には、is_front_page()
とis_home()
は違うものですが、ややこしくなるのでここでは割愛します。
固定ページ:is_page()
<?php if ( is_page() ): ?>
is_page( ID )
、is_page( 'スラッグ' )
、is_page( 'タイトル' )
とすれば、特定のページを条件にできます。複数のページの場合はis_page( 'スラッグ1' , 'スラッグ2' , 'スラッグ3' )
と「,」で区切ればOK!
個別投稿ページ:is_single()
<?php if ( is_single() ): ?>
アーカイブページ:is_archive()
<?php if ( is_archive() ): ?>
アーカイブページは、カテゴリー、タグ、日付別、作成者などのアーカイブ全てを含みます。
カテゴリーページ:is_category()
<?php if ( is_category() ): ?>
タグページ:is_tag()
<?php if ( is_tag() ): ?>
検索結果:is_search()
<?php if ( is_search() ): ?>
404 Not Found ページ:is_404()
<?php if ( is_404() ): ?>
作成者のアーカイブページ:is_author()
<?php if ( is_author() ): ?>
よく使うその他の条件分岐タグ
アイキャッチがあるかどうか:has_post_thumbnai()
アイキャッチがあった場合はアイキャッチを、ない場合は代替画像を表示(ループ内)
<?php if ( has_post_thumbnail() ) : ?> <?php the_post_thumbnail(); ?> //アイキャッチを表示 <?php else: ?> <img src="<?php echo get_template_directory_uri(); ?>/images/no-img.png""> //ない場合は代替画像を表示 <?php endif; ?>
モバイル端末かどうか:wp_is_mobile()
<?php if ( wp_is_mobile() ): ?> //スマホやタブレットでの処理 <php endif; ?>
まとめ
他にもいろいろ条件分岐タグはありますが、個人的に使用頻度の多いものをチョイスしました。
参考サイト