body_class を使ってページごとに違う表示をする
body_classで出力されるクラスをつかってページごとに違ったcssをつけることができます。
body_classはbody要素用のテンプレートタグです。
下記のようにbodyタグに記述すれば、表示するページの種類などによってbodyに自動的にクラスを付加してくれます。そのクラスを使いcssをページごとに変えたりする事ができます。
<body <?php body_class(); ?>>
body_class( $class );
$class にはクラス名が入ります。独自のクラスを付けることもできます。
使用例
<body <?php body_class(); ?>>
トップページには body class=”home” というクラスが付くので、下のようにcssに記入すれば、トップページのヘッダーだけ背景を黒にしたりできます。
.home #header{
background-clor:black;
}
#header{
background-clor:grey;
}
独自クラスを付ける
例えば特定のカテゴリーに独自クラスを付けるにはfunction.phpに下記のように記入します。
add_filter('body_class','my_class_names');
function my_class_names($classes) {
if(in_category('カテゴリー名')){
// add 'class-name' to the $classes array
$classes[] = 'クラス名';
// return the $classes array
}
return $classes;
}
クラス一覧
表示する条件やページによって下記のクラスをbodyに付加します。
(page number)が付くものは2ページ目以降に表示され()にはページ数が入る。
(id) が付くものは個別のidがはいる。
・フロントページ
home
・投稿記事が表示されるページ
blog
・カテゴリーや日別などのアーカイブページ
archive
・固定ページ
paged ,page-template ,paged-(page number)
page-id-(page_id) , page-template-(template file name)
page-parent 親ページ , page-paged-(page number)
parent-pageid-(id) , page-child 子ページ
・個別記事ページ
single postid-(id)
single-paged-(page number)
・カテゴリーページ
category , category-(slug)
category-paged-(page number)
・日付ページページ
date,date-paged-(page number)
・検索ページ
search , search-paged-(page number)
search-results 検索結果あり , search-no-results 検索結果なし
・ログイン状態
logged-in , admin-bar (since 3.1)
・タグページ
tag ,tag-(slug),tag-paged-(page number)
・著者ページ
author , author-(user_nicename) , author-paged-(page number)
・添付ファイルページ
attachment , attachmentid-(id) , attachment-(mime-type)
・404エラーページ
error404
・その他
rtl , ( text_direction: rtl )
tax-(taxonomy name) (since 3.1)
term-(term name) (since 3.1)
5 Comments & Tracbacks