WordPressで現在閲覧しているページのスラッグを<body>タグのクラスに追加表示する方法のご紹介です。
body_class()で出力されるクラスについて
まずはWordPress のテンプレートタグのbody_class()ですが、Twenty Fourteenテーマを利用している場合、トップページであれば、
1 |
<body class="home blog logged-in masthead-fixed list-view grid"> |
投稿の詳細ページであれば、
1 |
<body class="single single-post postid-3 single-format-standard logged-in masthead-fixed singular"> |
固定ページであれば、
1 |
<body class="page page-id-2 page-parent page-template-default logged-in masthead-fixed singular"> |
カスタム投稿タイプのアーカイブページであれば、
1 |
<body class="archive post-type-archive post-type-archive-sample logged-in masthead-fixed list-view"> |
のようなクラスが出力されます。
出力されるクラス名をCSSでスタイル指定してあげれば、ページ別にデザインを変更することができます。
参考ページ
http://wpdocs.sourceforge.jp/%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88%E3%82%BF%E3%82%B0/body_class
body_class() にスラッグを追加表示
ページ別に出力されるクラスに加えて、現在閲覧中のページのスラッグも追加表示したい場合は、ご利用のテーマフォルダ内のfunctions.phpを開いて、以下のコードを追加します。
1 2 3 4 5 6 7 8 |
function pagename_class($classes = '') { if (is_page()) { $page = get_page(get_the_ID()); $classes[] = $page->post_name; } return $classes; } add_filter('body_class','pagename_class'); |
「about」というスラッグ名の固定ページであれば、
1 |
<body class="page page-id-2 page-parent page-template-default logged-in masthead-fixed singular about"> |
と、<body class=””>の最後にスラッグ名が追加で表示されます。
コメント