Wordpress

2020.08.17

よく使うwordpressの条件分岐タグ

この記事は1317日前に投稿されたものです。

例えば、カテゴリーページではタイトルは「カテゴリー:〇〇」、タグページでは「タグ:〇〇」のように、表示しているページによってタイトルを変えたい場合があります。それぞれのテンプレート(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; ?>

まとめ

他にもいろいろ条件分岐タグはありますが、個人的に使用頻度の多いものをチョイスしました。

参考サイト