条件分岐とは(必要な人に、必要な表示だけ)

WordPress運用で「このページだけ表示を変えたい」「スマホだけ出したい」「特定の人にだけ見せたい」 というケースは非常に多いです。これを実現するのが「条件分岐(出し分け)」です。

条件分岐は難しそうに見えますが、考え方はシンプルです。 “どの条件のときに、何を表示するか”を整理すれば、実装は意外と簡単にできます。

まずは「出し分け条件」を言葉で書ける状態にするのが最短です。例:スマホのときだけAを表示、など。

よくある出し分けパターン

ページ単位の出し分け

特定のページだけ、案内文やCTAボタンを変えたい場合。

  • 固定ページAだけ表示する文言
  • 特定投稿だけ注意書きを出す
  • カテゴリ別に誘導先を変える

端末(スマホ/PC)出し分け

スマホではボタンを大きく、PCでは横並びにする、など。

  • スマホだけ固定ボタンを表示
  • PCだけサイドバーを表示
  • スマホだけ縦積みレイアウト

ログイン状態の出し分け

会員だけに見せたいコンテンツを扱う場合。

  • ログイン中だけ会員ページリンク
  • 未ログインは案内メッセージ
  • 会員限定の資料ダウンロード

時間・期間の出し分け

キャンペーンや告知など、期間限定の表示が必要な場合。

  • 締切日までカウント表示
  • 期間後は自動で非表示
  • 告知の切り替え

まずはCSSでできる「簡単な条件分岐」

スマホ/PCの出し分けは、PHPを触らなくてもCSSだけで実現できます。 まずはここを押さえると、作業スピードが一気に上がります。

/* PCだけ表示 */
.only-pc{ display:block; }
.only-sp{ display:none; }

@media (max-width:767px){
  /* スマホだけ表示 */
  .only-pc{ display:none; }
  .only-sp{ display:block; }
}

HTML側は表示したい要素に only-pc / only-sp クラスを付けるだけでOKです。

<div class="only-pc">PCでだけ表示</div>
<div class="only-sp">スマホでだけ表示</div>
端末の出し分けはCSSで十分なケースが多いです。まずは最小コストで解決しましょう。

WordPress(PHP)での条件分岐:基本例

「特定ページだけ」「特定カテゴリだけ」など、WordPressの状態に応じた出し分けはPHPで行います。 代表例をいくつか載せます(テーマのテンプレートやショートコード内で利用する想定です)。

// 例:トップページだけ表示
if ( is_front_page() ) {
  echo 'トップページ限定の表示';
}

// 例:特定の固定ページIDで表示(ID=123)
if ( is_page(123) ) {
  echo 'この固定ページだけの表示';
}

// 例:特定カテゴリの記事で表示(カテゴリスラッグ)
if ( is_single() && has_category('news') ) {
  echo 'ニュース記事だけの表示';
}

// 例:ログイン中だけ表示
if ( is_user_logged_in() ) {
  echo 'ログイン中のユーザー向け表示';
}
実装自体は短いコードで済みます。大事なのは「条件の整理(言語化)」です。

トラブルになりやすいポイントと対策

  1. 1

    条件が増えすぎて管理できなくなる

    出し分けが増えるほど「どこに何を書いたか」分からなくなります。ルール(命名・場所)を決めて共通化すると安定します。

  2. 2

    CSSとPHPの役割が混ざる

    端末の出し分けはCSS、ページ状態の出し分けはPHP、と切るのが基本です。まずCSSで解決できないか検討すると最短です。

  3. 3

    テーマ更新で条件分岐が消える

    テーマファイルを直接編集すると更新で上書きされます。子テーマ、またはプラグイン/ショートコード化が安全です。

条件分岐は“増殖”しやすいので、早い段階で「共通化」と「置き場所のルール」を作っておくと後がラクです。

ご質問・ご相談などありましたら
お気軽にお問い合わせください