投稿(ブログ記事)だけCSSを切り替える方法
投稿ページでも特定の記事だけCSSを切り替えることができます。ここでは is_single('スラッグ')
を使った具体例をご紹介します。
投稿ページのスラッグ確認方法
- WordPress管理画面で投稿を開く。
- 「タイトル」の下にある「パーマリンク」を確認。
- URLの最後の部分がスラッグです。例:
https://example.com/my-first-post/
の場合、スラッグはmy-first-post
- 必要に応じてスラッグは編集可能です。
functions.php で投稿スラッグ別にCSS切替
// 投稿ページごとにスラッグでCSSを切り替える
function custom_css_by_post_slug() {
if (is_single('my-first-post')) { // スラッグが my-first-post の投稿
wp_enqueue_style('first-post-css', get_stylesheet_directory_uri() . '/css/first-post.css');
} elseif (is_single('about-me')) { // スラッグが about-me の投稿
wp_enqueue_style('about-me-css', get_stylesheet_directory_uri() . '/css/about-me.css');
} else { // その他の投稿
wp_enqueue_style('default-post-css', get_stylesheet_directory_uri() . '/css/custom-post.css');
}
}
add_action('wp_enqueue_scripts', 'custom_css_by_post_slug');
補足:
・
・
・固定ページには
・CSSファイルは子テーマの /css/ フォルダに配置すると管理がしやすいです。
・
is_single('スラッグ')
は投稿やカスタム投稿タイプ専用です。・
is_single('スラッグ')
は投稿ページ全体に適用されますが、特定の投稿ページだけにCSSを適用したい場合は、is_single('スラッグ')
または is_single(ID)
を使用してください。・固定ページには
is_page('スラッグ')
を使用します。・CSSファイルは子テーマの /css/ フォルダに配置すると管理がしやすいです。
投稿ページ用CSS例
/*投稿(ブログ記事)だけCSSを切り替える*/
/* first-post.css */
body.single-my-first-post {
background-color: #e8f5e9;
}
.single-my-first-post h1 {
color: #2e7d32;
}
/* about-me.css */
body.single-about-me {
background-color: #fff3e0;
}
.single-about-me h1 {
color: #ef6c00;
}
/* custom-post.css (その他の投稿) */
body.single {
background-color: #f5f5f5;
}
子テーマのディレクトリ構造
- 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
まとめ
投稿ページでは is_single('スラッグ')
を使うことで、記事ごとに個別のCSSを読み込むことができます。子テーマの /css/ フォルダにファイルを整理して、functions.php に条件分岐で読み込む方法が基本です。