PHP条件分岐のif-else文 ワードプレス特化の用例集

ヘッダ画像

PHP条件分岐のif-else文 ワードプレス特化の用例集

if文は指定の条件に当てはまるケースとそれ以外で別の処理を行うための構文です。
C言語やJavaScriptなど様々なプログラム言語で使用されますが、ここではWordPressのPHPに特化した形で解説します。

基本の記述方法

まずは基本の記述方法です。

<?php
if(条件式) {
当てはまる場合の処理
} else {
当てはまらない場合の処理
}
?>

下は一度、判定時に一度PHPを抜けて処理をベタ打ちしています。
プログラムに馴染みがない方でも少し理解しやすいでしょう。

<?php if(条件式) { ?>
当てはまる場合の処理
<?php } else { ?>
当てはまらない場合の処理
<?php } ?>

コロン構文

こちらはPHPとHTMLを混在する場合にさらに見やすく記述できます。

<?php if(条件式) : ?>
当てはまる場合の処理
<?php else : ?>
当てはまらない場合の処理
<?php endif; ?>

基本的に結果は同じなので、自分が理解しやすい記述で構わないと思います。

論理演算子

複数の条件を組み合わせる際には論理演算子を使います。

$$
条件1 かつ 条件2
andも同じ役割だが、優先順位は&&>and
if(is_single() || is_tag('WordPress'))→'WordPress'というタグを持つ投稿
||
条件1 あるいは 条件2
orも同じ役割だが、優先順位は||>or
if(is_page() || is_single())→ページか投稿
!
この条件ではない
!is_page()→ページではない
==
条件1と条件2が等しい
if(条件1 == 条件2) のように使う

else ifとelseifの違い

それ以外の条件判定には、else ifelseifという2つの書き方ができます。
実行結果は同じです。
厳密にはelse ifがわずかに速いとされていますが、通常、気にする必要のない範疇です。
よって、どちらを使用しても構いませんが、コロン記法ではelseifでないとエラーになる点は注意する必要があります。

WordPressでの条件式

固定ページ

if(is_page())
  • if(is_page('5'))のような形でID・スラッグ・タイトルを因数として絞り込みが可能。
  • 複数指定はis_page(array(5, 10, 'スラッグ2'))のようにカンマで区切り。
  • IDのシングルクォーテーションは省略可。

投稿

if(is_single())
  • is_page()と同じく、if(is_single('125'))のような形でID・スラッグ・タイトルを因数として絞り込みが可能。
  • 複数指定はis_page(array(5, 10, 'スラッグ2'))のようにカンマで区切り。
  • IDのシングルクォーテーションは省略可。

固定ページ もしくは投稿

if(is_page() || is_single())
  • is_singular()はカスタム投稿も含めたすべての投稿となる。

カスタム投稿

if(is_singular('info'))
  • カスタム投稿infoでの指定例。
  • is_singular()であることに注意。

トップページ

if ( is_home() || is_front_page())

アーカイブページ

if(is_arhive())
  • 日別などすべてのアーカイブ系を含むため、カテゴリーだけを指定する場合は以下のif(is_category())を使う

カテゴリーページ

if(is_category())
  • if(is_category('1','スラッグ','カテゴリ名'))のように、ID・スラッグ・カテゴリ名を因数として絞り込み、および、複数指定が可能。
  • IDのシングルクォーテーションは省略可。

タグページ

if(is_tag())
  • if(is_tag('test','83'))など、タグ・ID・スラッグを因数として絞り込み、および、複数指定が可能。
  • IDのシングルクォーテーションは省略可。

検索結果ページ

if(is_search())

404ページ

if(is_404())

作成者ページ

if(is_author())

2ページ目以降

if(is_paged())
  • 逆に1ページ目の指定は!is_paged()

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

if(is_post_type_archive())

モバイル

if(wp_is_mobile())
  • いわゆるスマホ判定です。

アイキャッチ画像

if (has_post_thumbnail())

WordPressでよく使う用例集

トップページではサイト名を表示

<?php if ( is_home() || is_front_page() ) : ?>
<?php bloginfo( 'name' ); ?>
<?php endif; ?>
  • 用例のように、elseの処理が必要ない場合は<?php else:?>は省くことができます。

アイキャッチ画像があれば表示、なければ代替えを表示

<?php if ( has_post_thumbnail() ) : ?>
<?php the_post_thumbnail(); ?>
<?php else: ?>
<img src="<?php echo get_template_directory_uri(); ?>/images/site_image.png" alt="site_image">
<?php endif; ?>

スマホとPCで違う画像を表示

<?php if (wp_is_mobile()) :?>
<img src="<?php echo get_template_directory_uri(); ?>/images/image_mobile.png" alt="mobile_image">
<?php else: ?>
<img src="<?php echo get_template_directory_uri(); ?>/images/image_pc.png" alt="pc_image">
<?php endif; ?>

用例は随時追加していきたいと思います。
こんな用例が知りたい!という要望があれば、コメント欄よりどうぞ。

WordPressのログイン状態で条件分岐する
WordPressのログイン状態で条件分岐する

WordPressで管理者など、ログインユーザーとそれ以外でIF文による条件分岐を行いたいケースがあるのではないでしょうか。 今回はスタンダードなPHPとちょい変わり種のJavaScriptの2種類で判定する方法を紹介します。 PHPで判定 ログインユーザーの […]

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です



関連記事

WordPressのユーザー名は丸見え!? 知っていますか?WordPressのログインユーザー名はだだ漏れだという事実を...ダッシュボード乗っ取り防止のためのセ...

絶対に分かる!WordPressの子テーマ作成 WordPressでは子テーマという機能があります。既存のテーマを作成すれば、カスタマイズする際に変更したい部分だけを子...

WordPressのRSSフィードを完全にコントロールする WordPressではコンテンツの更新情報を知らせるために標準でRSSを出力します。その出力方法は...http://e...

「トップに戻る」ボタンでスマホでのユーザビリティアップ! ウェブサイト上でコンテンツを下にスクロールさせると「トップに戻る」ボタンが出現して、クリックするとビューンとページの初め...