固定ページだけCSSを切り替える方法

固定ページのスラッグを使うと、特定のページだけにCSSを適用できます。ここではスラッグの確認方法とfunctions.phpでの具体例をご紹介します。

固定ページのスラッグ確認方法

  • WordPress管理画面で固定ページを開く。
  • 「タイトル」の下にある「パーマリンク」を確認。
  • URLの最後の部分がスラッグです。例: https://example.com/contact/ の場合、スラッグは contact
  • 必要に応じてスラッグは編集可能です。

functions.php でスラッグ別にCSS切替


// 固定ページごとにスラッグでCSSを切り替える
function custom_css_by_page_slug() {
    if (is_page('contact')) { // スラッグが contact の固定ページ
        wp_enqueue_style('contact-css', get_stylesheet_directory_uri() . '/css/contact.css');
    } elseif (is_page('about')) { // スラッグが about の固定ページ
        wp_enqueue_style('about-css', get_stylesheet_directory_uri() . '/css/about.css');
    } else { // その他の固定ページ
        wp_enqueue_style('default-page-css', get_stylesheet_directory_uri() . '/css/custom-page.css');
    }
}
add_action('wp_enqueue_scripts', 'custom_css_by_page_slug');
補足:
・`is_page('スラッグ')` は固定ページ専用です。
・is_page() は固定ページ全体に適用されます。特定の固定ページだけにCSSを当てたい場合は is_page('スラッグ')is_page(ID) を使用してください。
・投稿やカスタム投稿タイプでは `is_single('スラッグ')` を使います。
・CSSファイルは子テーマの /css/ フォルダに配置すると安全です。

CSSファイル例


/*固定ページだけCSSを切り替える*/
/* contact.css */
body.page-contact {
    background-color: #f0f8ff;
}
.page-contact h1 {
    color: #0066cc;
}

/* about.css */
body.page-about {
    background-color: #fff0f5;
}
.page-about h1 {
    color: #cc0066;
}

/* custom-page.css (その他の固定ページ) */
body.page {
    background-color: #f9f9f9;
}

子テーマのディレクトリ構造

  • child-theme/
    • archive.php
    • category.php
    • functions.php
    • footer.php
    • header.php
    • style.css
    • js/
      • category-sort.js
    • images/
      • logo.png
    • css/
      • contact.css
      • first-post.css

まとめ

スラッグを使うことで、固定ページごとに簡単にCSSを切り替えられます。子テーマの /css/ フォルダにファイルを置き、functions.php に条件分岐で読み込むのが基本的な方法です。