条件分岐とは(必要な人に、必要な表示だけ)
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
条件が増えすぎて管理できなくなる
出し分けが増えるほど「どこに何を書いたか」分からなくなります。ルール(命名・場所)を決めて共通化すると安定します。
- 2
CSSとPHPの役割が混ざる
端末の出し分けはCSS、ページ状態の出し分けはPHP、と切るのが基本です。まずCSSで解決できないか検討すると最短です。
- 3
テーマ更新で条件分岐が消える
テーマファイルを直接編集すると更新で上書きされます。子テーマ、またはプラグイン/ショートコード化が安全です。
条件分岐は“増殖”しやすいので、早い段階で「共通化」と「置き場所のルール」を作っておくと後がラクです。

