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';
}
}