Trusted WordPress tutorials, when you need them most.
Beginner’s Guide to WordPress
WPBカップ
25 Million+
Websites using our plugins
16+
Years of WordPress experience
3000+
WordPress tutorials
by experts

WordPressでBodyクラスにページスラッグを追加する方法

私たちは長年にわたってWordPressサイトを数多く手掛けてきましたが、私たちがいつも戻ってくるカスタマイザーのひとつが、bodyクラスにページスラッグを追加することです。とてもシンプルなことですが、デザインの柔軟性という点では雲泥の差があります。

WordPressテーマでページスラッグを追加することで、複雑な作業をすることなく、望むすべてのカスタマイゼーションを行うことができます。サイトの他の部分に影響を与えることなく、個々のページの色やフォント、その他の項目を簡単に変更することができます。

この投稿では、WordPressテーマのbodyクラスにページスラッグを追加する方法を紹介します。

How to Add the Page Slug to Body Class in WordPress

なぜテーマのBodyクラスにページスラッグを追加するのか?

サイト上の特定のページをカスタマイズし、ページを正しく識別したい場合、テーマのbodyクラスにページスラッグを追加するととても便利です。

初期設定では、WordPressサイトには投稿IDクラスしか表示されないため、正しいページを認識する際に厄介なことがあります。ページスラッグはブログ投稿のURLを表示するので、ページのカスタマイザーが簡単になります。

そのほかにも、ページスラッグボディクラスを使って、ページにさまざまなカスタマイザーを施すことができます。例えば、特定の投稿日のフォントや色を変更したり、特定のランディングページの行動喚起ボタンを強調したりすることができます。

ということで、WordPressテーマのbodyクラスにページスラッグを追加する方法を見てみましょう。

WordPressテーマにページスラッグを追加する

WordPressテーマのbodyクラスにページのURLを追加するには、テーマのfunctions.phpファイルに以下のコードを入力します。

function add_slug_body_class( $classes ) {
global $post;
if ( isset( $post ) ) {
$classes[] = $post->post_type . '-' . $post->post_name;
}
return $classes;
}
add_filter( 'body_class', 'add_slug_body_class' );

WordPressのテーマエディター(コードエディター)からテーマのfunctions.phpファイルにアクセスすることができます。しかし、テーマファイルを直接編集するのは非常に危険です。

コードを追加する際にミスがあると、サイトが壊れたり、WordPressダッシュボードへのログインがブロックされたりする可能性があるからだ。

テーマのbodyクラスにコードを追加するもっと簡単な方法は、WPCodeのようなWordPressプラグインを使うことだ。

WPCode

WPCodeを使用すると、簡単に数分で、エラーなしでサイトにコードを追加することができます。さらに、将来テーマの更新や変更があった場合でも、コードが削除されることはありません。

また、1クリックでインストールできる専門家が作成したコードスニペットのライブラリが付属しています。そのため、高度なWordPressカスタマイザーを作成するためのコーディングスキルは必要ありません。

まず、あなたのサイトに無料のWPCodeプラグインをインストールし、有効化する必要があります。ステップバイステップの手順については、WordPressプラグインのインストール方法のガイドを参照してください。

プラグインを有効化すると、WordPressの管理バーに「Code Snippets」という新しいメニュー項目が追加されます。それをクリックすると、コードスニペットをすべて管理するページに移動します。

最初のカスタムコードスニペットを追加するには、「新規追加」ボタンをクリックします。

Go to Code Snippets and click on Add New

スニペットの追加」ページが表示され、あらかじめ用意されたライブラリからコード・スニペットを選択するか、カスタマイザー・コードを追加することができます。

カスタムコードを追加するには、「カスタムコードの追加(新規スニペット)」設定に移動し、「スニペットを使用」ボタンをクリックします。

Add custom code in WPCode with new snippet

コード・スニペットにタイトルを付け、「コード・プレビュー」ボックスにコードを入力します。また、右側のドロップダウンリストからコードタイプとして「PHP Snippet」を選択する必要があります。

Enter code snippet and choose code type

次に、「インサーター」セクションまでスクロールダウンします。ここで「Auto Insert」メソッドを選択すると、管理画面やフロントエンドなど、WordPressの特定の場所にコードを自動的に挿入して実行することができます。よくわからない場合は、初期設定の「Run Everywhere」のままにしておいてください。

Edit insertion method for code

または、「ショートコード」メソッドを選択することもできます。この方法では、スニペットは自動的に挿入されません。あなたのサイトの任意の場所に手動で挿入できるショートコードが得られます。

準備ができたら、スイッチを「Inactive」から「Active」に切り替え、右上の「Save Snippet」ボタンをクリックする。

Save and activate code snippet WPCode

詳しくは、WordPressでカスタマイザーコードを追加する方法をご覧ください。

新規のボディ・クラスが次のように出力されます: page-{スラッグ}。このクラスを使って、初期設定のスタイルを上書きし、特定のページ用に要素をカスタマイズしてください。

例えば、サイドバーウィジェットを“education “というスラッグがあるページにのみ表示したいとします。その場合、次のようなCSSを追加できます:

#sidebar .widgets{background: #fff; color: #000;}
.page-education #sidebar .widgets{background: #000; color: #fff;}

詳しくは、WordPressにカスタムCSSを追加する方法をご覧ください。

この投稿が、WordPressテーマのbodyクラスにページスラッグを追加する方法を学ぶのにお役に立てば幸いです。WordPressのボディクラスと 最適なデザインソフトの選び方についてのガイドもご覧ください。

If you liked this article, then please subscribe to our YouTube Channel for WordPress video tutorials. You can also find us on Twitter and Facebook.

情報開示 私たちのコンテンツは読者支援型です。これは、あなたが私たちのリンクの一部をクリックした場合、私たちはコミッションを得ることができることを意味します。 WPBeginnerの資金源 をご覧ください。3$編集プロセスをご覧ください。

アバター

Editorial Staff at WPBeginner is a team of WordPress experts led by Syed Balkhi with over 16 years of experience in WordPress, Web Hosting, eCommerce, SEO, and Marketing. Started in 2009, WPBeginner is now the largest free WordPress resource site in the industry and is often referred to as the Wikipedia for WordPress.

究極のWordPressツールキット

ツールキットへの無料アクセス - すべてのプロフェッショナルが持つべきWordPress関連製品とリソースのコレクション!

Reader Interactions

26件のコメント返信を残す

  1. David

    Thanks! Simple and effective.

    • WPBeginner Support

      You’re welcome!

      管理者

  2. jeba

    Thanks. Its working

    • WPBeginner Support

      Glad our method worked for you :)

      管理者

  3. Bradley

    Many thanks! Literally copied & pasted this code into my functions.php. Worked perfectly.

  4. Alds

    How about using global $wp_query instead of $post? I’ve noticed that $post gets overwritten if you’ve run a wp_query before the functions.php gets executed.

  5. Pete

    This needs a conditional statement to only apply it to single.php, not archive.php etc.

  6. Chris

    How can I put the post-id in the body class?

  7. Aaron McGraw

    Awesome! Just what I needed. Thank you so much!

  8. Daneil

    Thank you for putting it out there, simple bit of code, but useful and allows you to write more human friendly css files, rather than classes based on ID. Cheers

  9. Austin

    Thank you so much for this! I found out the hard way that page-id can change given different circumstances. This allows me to style individual pages without as much worry. :)

  10. Kevin

    Many thanks for this. Had some problems initially due to the position of code in my stylesheet CSS but once moved to the bottom worked great. Just wish this was standard for WP as others have said and that i had known about this a long time ago

  11. Tom McGinnis

    This code works quite well. I was finding, however, that search results would end up with the body class including the slug from the first item listed. Sometimes the first item would have styles that would override the styles for the search results page. Strange, huh!

    I figured out that if you put !is_search() inside the if statement, then this problem is eliminated. If anybody else runs into this problem, the fix is simple.

    • Did you use &&?

      When you put in !is_search() –How did you write the code?

  12. Murhaf Sousli

    This’s exactly what I’m looking for, I pasted the code in function.php, but unfortunately there is no class added to body! any ideas?

    • Asaf

      I have the exactly same issue

      • Ahir Hemant

        Hello, it working for me. send me your link so i can check.

        Thank you

  13. WPBeginner Staff

    It is bundled with WordPress. However the front-end of your site is handled by themes that’s why it is left for theme authors to decide whether or not to use it.

  14. MJ

    Awesome! I wish this functionality was bundled with WP though

  15. Suat

    It’s great way for editing css.
    Thank you

  16. Weerayut Teja

    You save my work time.
    Thanks Syed :)

  17. Todd M.

    This is a great snippet for all WordPress devs. Comes as standard in my theme setup now.

  18. Gaurav Ramesh

    Thanks for this. Such small tips and tricks help a lot to beginners like me.

  19. Randy Caruso

    Thanks for this – been stuck hacking myself to bits with the page-id and suffering the consequences.

返信を残す

コメントありがとうございます。すべてのコメントは私たちのコメントポリシーに従ってモデレートされ、あなたのメールアドレスが公開されることはありませんのでご留意ください。名前欄にキーワードを使用しないでください。個人的で有意義な会話をしましょう。