<body <?php body_class(); ?>> の意味と役割

記事
IT・テクノロジー
WordPressでテーマを作るとき、ほぼ必ずと言っていいほど出てくるのがこの記述です。

<body <?php body_class(); ?>>

見た目はシンプルですが、ここにはテーマ開発において重要な役割があります。

これは何をしているのか

body_class() は、現在のページの状態に応じて自動的にclassを付与する関数です。

つまりこの1行で、WordPressが状況を判断して、<body>タグにクラスを追加してくれます。

例えば、出力されるHTMLはこんな感じになります。

<body class="home blog logged-in admin-bar">

このクラスは自分で書いているわけではなく、WordPressが自動で生成しています。

どんなクラスが付くのか

ページの種類や状況によって変わります。

代表的なものは以下です。

home:トップページ
single:投稿ページ
page:固定ページ
archive:一覧ページ
category-〇〇:特定のカテゴリ
logged-in:ログイン状態
admin-bar:管理バー表示中

つまり、「今どのページなのか」という情報がそのままクラスとして入ります。

なぜ必要なのか

結論から言うと、ページごとにCSSを出し分けるためです。

例えばこんなことができます。

.home .hero {
  background: red;
}

.single .hero {
  background: blue;
}

同じ .hero というクラスでも、ページによって見た目を変えることができます。

これを使わないとどうなるか

これを使わない場合、以下のような問題が出ます。

ページごとのデザイン切り替えが面倒になる
不要なクラスを手動で書く必要がある
条件分岐(PHP)が増えてコードが汚くなる

つまり、設計が一気に崩れます。

よくある誤解
「bodyにクラスが増えるだけでしょ?」

その認識は浅いです。

これは単なるクラス追加ではなく、WordPressの状態管理をCSSに橋渡しする仕組みです。

ここを軽く見ると、後から確実に詰みます。

実務での使い方

実務ではかなり頻繁に使います。

例えば、

トップページだけヘッダーを透明にする
下層ページは余白を増やす
特定の投稿タイプだけレイアウトを変える

こういう制御は、ほぼすべて body_class() を前提に書きます。

結論

body_class() はただの便利関数ではありません。

ページ状態を自動でクラス化する
CSS設計をシンプルにする
条件分岐を減らす

つまり、WordPressテーマ設計の基盤です。

これを理解せずに進むと、後から無駄に複雑なコードを書くことになります。
サービス数40万件のスキルマーケット、あなたにぴったりのサービスを探す ココナラコンテンツマーケット ノウハウ記事・テンプレート・デザイン素材はこちら