2009-06-26
wordpress2.8から使えるタグbody_class
日本語ではあまり解説がなかったので記録。
Wordpress2.8から追加された新しいテンプレートタグの一つ、body_classに関する解説ページを英語で見つけたので、少し説明してみるよ。
参考:WordPress 2.8 and the body_class() Function
参考:How to detect the visitor browser within WordPress
2.7から、post_classというタグが追加されていた。
記事のループを囲むdiv等の開始タグ内にこれを挿入すると、CSSの一連のclassが記事に応じて挿入される。
これのbody版がこのbody_classということ。
<body <?php body_class(); ?>>
大きな違いは、生成するclassが違うこと。サイトの閲覧しているページに応じて生成するclassが変わる。
もしサイトのトップを見ていれば、home blogといったclassが生成され、ページ部分を見ていれば、page-id-3 parent-page-id-0 page-template-defaultなどが生成される。
けっこうこれは便利な機能だ。ていうかこれでだいぶ訪問者に応じたサイト構成を提供できるんではないだろうか。
生成されるタグには以下のものがある:
* rtl
* home
* blog
* archive
* date
* search
* paged
* attachment
* error404
* single postid-(id)
* attachmentid-(id)
* attachment-(mime-type)
* author
* author-(user_nicename)
* category
* category-(slug)
* tag
* tag-(slug)
* page
* page-parent
* page-child parent-pageid-(id)
* page-template page-template-(template file name)
* search-results
* search-no-results
* logged-in
* paged-(page number)
* single-paged-(page number)
* page-paged-(page number)
* category-paged-(page number)
* tag-paged-(page number)
* date-paged-(page number)
* author-paged-(page number)
* search-paged-(page number)
このbody_classの判別材料も追加できるみたいだ。
function.phpにadd_filterを追加し、ブラウザ判別の材料を入れてあげれば、各ブラウザごとのclassセレクタも入れてくれる。
以下のadd_filter文をfunction.phpに書き込む。
add_filter('body_class','browser_body_class');
function browser_body_class($classes) {
global $is_lynx, $is_gecko, $is_IE, $is_opera, $is_NS4, $is_safari, $is_chrome, $is_iphone;
if($is_lynx) $classes[] = 'lynx';
elseif($is_gecko) $classes[] = 'gecko';
elseif($is_opera) $classes[] = 'opera';
elseif($is_NS4) $classes[] = 'ns4';
elseif($is_safari) $classes[] = 'safari';
elseif($is_chrome) $classes[] = 'chrome';
elseif($is_IE) $classes[] = 'ie';
else $classes[] = 'unknown';
if($is_iphone) $classes[] = 'iphone';
return $classes;
}
?>
- 22 http://www.google.com/search?client=safari&rls=ja-jp&q=基になるタスク&ie=UTF-8&oe=UTF-8
- 12 http://www.google.co.jp/search?hl=ja&q=基になるタスクが終了時に失敗したことが報告されま
- 8 http://www.google.co.jp/search?q=基になるタスク&lr=lang_ja&ie=utf-8&oe=utf-8&aq=t&rlz=1R1GGGL_ja___JP323&client=firefox
- 4 http://www.google.co.jp/search?q=body_class()&lr=lang_ja&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:ja:official&client=firefox-a
- 3 http://www.google.co.jp/search?hl=ja&client=firefox&rls=org.mozilla:ja:official&hs=vji&q=wordpress+<?php+body_class();+?>&btnG=検索&lr=lang_ja
- 3 http://www.google.co.jp/search?hl=ja&client=firefox-a&rls=org.mozilla:ja-JP-mac:official&hs=odF&q=表+交互+背景色+wordpress&btnG=検索&lr=lang_ja&aq=f&oq=
- 3 http://www.google.co.jp/search?hl=ja&q=エラーメッセージ 基になるタスクが&btnG=Google+検索&lr=&aq=f&oq=
- 3 http://www.google.co.jp/search?hl=ja&q=mac+基になるタスクが終了時に失敗したことが報告され?%8
- 3 http://www.google.co.jp/search?sourceid=navclient&hl=ja&ie=UTF-8&rlz=1T4DAJP_jaJP314JP226&q=<MTEntries>
- 2 http://search.yahoo.co.jp/search?p=css+リストを中央に&search.x=1&fr=top_ga1_sa&tid=top_ga1_sa&ei=UTF-8&aq=&oq=





