テンプレートをカテゴリ毎に変更するで、WPでカテゴリーやページのようにリスト形式になったメニューで今選ばれているのがわかるようにスタイルシートでできないものかと書いてましたが、CodexのDynamic Menu Highlighingにその方法が書いてありました。

  普通、リスト形式にする場合はこのように書きます。(”#”はダミーリンク)これはPage Twoが選択されハイライトしている場合です。
<div id="navigation">
<ul>
<li><a href=”#”>Page One</a></li>
<li id=”current”><a href=”#”>Page Two</a></li>
<li><a href=”#”>Page Three</a></li>
<li><a href=”#”>Page Four</a></li>
</ul>

このHTMLに、スタイルシートでidが”current”のスタイルをつけることによって、他のメニューアイテムとは違うスタイルにすることができます。
PHPではまず”current”を省き、リストアイテムそれぞれにidをつけていきます。
<div id="navigation">
<ul>
<li id=”one”><a href=”#”>Page One</a></li>
<li id=”two”><a href=”#”>Page Two</a></li>
<li id=”three”><a href=”#”>Page Three</a></li>
<li id=”four”><a href=”#”>Page Four</a></li>
</ul>
</div>

PHPが組み込まれるとこうなります。
<?php
if ( is_page(’Page One’) ) { $current = ‘one’; }
elseif ( is_page(’Page Two’) ) { $current = ‘two’; }
elseif ( is_page(’Page Three’) ) { $current = ‘three’; }
elseif ( is_page(’Page Four’) ) { $current = ‘four’; }
?>

これはis_page機能をPageのタイトルで使っています。このコードを説明すると、Pageのタイトルが”Page One”が選択されている時、”current”の値は”one”になり、Pageのタイトルが”Page Two”のページが選択されている時、”current”の値は”two”になる・・・という風になっています。このコードはWordPressの場合、テンプレートのheader.phpの<head>と</head>の間に書きます。
  次はこのコードにスタイルをつけます。(例では背景色を黄色に変えています)このようなPHPで値が変化するコードにスタイルをつける場合、スタイルシートではできないので、テンプレートのヘッダーにスタイルを直接書き込みます。WordPressの場合、テンプレートのheader.phpの<head>と</head>の間に書きます。
<style type="text/css">
#current {
background-color: yellow;
}
</style>

このスタイルを上のコードに適応させる為にコードを追加します。
<style type="text/css">
#<?php echo $current; ?> {
background-color: yellow;
}
</style>

これで$current値にスタイルを付けて、今選ばれているメニューを他とは違うスタイルにすることが出来ます。

Pages: 1 2 3 4