WordPress:bodyタグのIDを取得
思ったより情報が拾えてあっさりとできました^^
【追記】なぜかis_category が機能していない。あきらめて「拡張」バージョンにする。
以下 function.php に書く。
5行目はページテンプレートを取得してIDを振り分け。
もちっとスマートなグローバル変数もあるという話だけど結果オーライでw
7行目はphpわかってなくてなんとなーく触っている私などが悩むあたり。
ようするに、nosidebarテンプレじゃない”ページ”は idを page にしてね、ということがやりたいのです。
/* ---- Body ID チェンジ ---- */ function body_idchange() { if (is_home()) { echo 'home'; } elseif (is_page() && is_page_template('page-nosidebar.php')) { echo 'nosidebar'; } elseif (is_page && !is_page_template('page-nosidebar.php')) { echo 'page'; } elseif (is_archive()) { echo 'archive'; } elseif (is_category()) { echo 'category'; } else { echo 'contents'; } }
以下 bodyタグ に書く。
<body id="<?php body_idchange(); ?>">
ちょっと拡張してみる。投稿記事(single)のとき、カテゴリースラッグをIDにする。
/* ---- Body ID チェンジ ---- */ function body_idchange() { if (is_home()) { echo 'home'; } elseif (is_page() && is_page_template('page-nosidebar.php')) { echo 'nosidebar'; } elseif (is_page && !is_page_template('page-nosidebar.php')) { echo 'page'; } elseif (is_archive()) { echo 'archive'; } elseif (is_single()) { foreach((get_the_category()) as $category) { echo $category->category_nicename.''; } } else { echo 'contents'; } }
さらにページの時はページスラッグを取得。もうあちこちから寄せ集めなので書き方てんでバラバラ。ベンキョせにゃ;
function body_idchange() { if (is_home()) { echo 'home'; } elseif (is_page() && is_page_template('page-nosidebar.php')) { echo 'nosidebar'; } elseif (&& is_page && !is_page_template('page-nosidebar.php')) { if ($parent_slug = get_page_uri($post->post_parent)){ echo $parent_slug; } } elseif (is_archive()) { echo 'archive'; } elseif (is_single()) { foreach((get_the_category()) as $category) { echo $category->category_nicename.''; } } else { echo 'contents'; } }