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

条件分岐タグ

似たタイプの記事

トップへ戻る