ページ内目次

body タグの class 属性に自ページと親ページのスラッグを追加

固定ページの各ページ毎や、ある固定ページの子孫ページだけにスタイルシートを適用したい場合など

bodyタグにページスラッグが吐き出されてくれると便利

ところが、body_class()のパラメータとしてページスラッグは用意されていないんですね(;´∀`)

実はWordPress Codex のサイトにはちゃんと付いてるんですよね。『page-テンプレートタグ_body_class』みたいに。

じゃぁパラメータ用意してよ(笑)って感じではありますが、ないものは自分で用意しなければならないので

functions.phpに、以下のコードを書き込みます。

// body タグの class 属性に自ページと親ページのスラッグを追加
function pagename_class($classes = '') { 
	if (is_page()) { 
		$page = get_post(get_the_ID()); 
		$classes[] = 'page-' . $page->post_name;
		if ($page->post_parent) { 
			$classes[] = 'page-' . get_page_uri($page->post_parent) . '-child';
		} 
	} return $classes; 
} add_filter('body_class', 'pagename_class');

すると

page-自ページスラッグ とか page-親ページスラッグ-chid のように吐き出されます

↑上へまいりま〜す