みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

2階層目の現在ページをナビで表示させるには

こんにちわ。
WORDPRESSでホームページを作成しております。
添付画像の様にグローバルナビで現在の位置を背景色緑で表示してるのですが、1階層目の時しか表示されません。
WORKSの2階層目である「コンサルティング」も同様にしたいのですが、2階層目も反映してくれるにはどの様なPHPを記述すればいいのでしょうか。

---------PHP記述---------
<ul id="nav">
<li<?php if(is_home()){echo ' class="current_page_item"';} ?>>
<a href="<?php bloginfo('url'); ?>" title="TOP">TOP</a></li>
<?php wp_list_pages('title_li=&depth=1'); ?>
</ul>
---------------------------

---------CSS(CSSは関係ないと思いますが、一応)------------------
#nav{
background-color: #ffffff;
margin: 0;
padding: 0;
list-style-type: none;
height: 2em;
width: 800px;
border-bottom-width: 1px;
border-bottom-style: solid;
border-bottom-color: #00645C;
}
#nav li{
text-align: center;
float: left;
line-height: 2em;
}
#nav li a{
display: block;
width: 110px;
text-decoration: none;
color: #333333;
border-top: 1px solid #fff
}
#nav li a:hover{
color: #00645C;
border-top-width: 1px;
border-right-width: 1px;
border-left-width: 1px;
border-top-style: solid;
border-right-style: solid;
border-left-style: solid;
border-top-color: #00645C;
border-right-color: #00645C;
border-left-color: #00645C;
}
#nav .current_page_item a{
color: #FFFFFF;
background-color: #00645C;
border-top: 1px solid #00645C
}

---------------------------
また、ページ内リンクをしたいのですが、絶対パスで単純にサーバーにアップされてるURLを記述する方法しかないのでしょうか。

投稿日時 - 2009-03-26 16:46:38

QNo.4828809

すぐに回答ほしいです

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

ANo.1

例えばURLが
http://www.exampe.com/works/hoge.html
だった場合、
環境変数 $_SERVER['REQUEST_URI'] によってhttp://www.exampe.comより後ろの部分
/works/hoge.html
を取得することができます。
$request_url = $_SERVER['REQUEST_URI'];

そして、split関数で、“/”をセパレータとして配列に分割。

$a = split("/",$request_url);

その結果取得した配列は
print_r($a);

Array ( [0] => [1] => works [2] => hoge.html )

================================================
<ul id="nav">
<li<?php if(is_home()){echo ' class="current_page_item"';} ?>>
<a href="<?php bloginfo('url'); ?>" title="TOP">TOP</a></li>
<li<?php if($a[1] == "works"){echo ' class="current_page_item"';} ?>>
<a href="/works/" title="Works">Works</a></li>
</ul>
================================================

wp_list_pages()ではそこまで細かい指定はできないように思われるので、こんな感じでやった方が確実かと。

ページ内リンクは、例えば
http://www.exampe.com/works/hoge.html
にリンクさせるのであれば
<a href="/works/hoge.html">~</a>
とやれば、どの階層からでも変わりなく目的のページにリンクさせることができます。

投稿日時 - 2009-03-27 15:22:54

あなたにオススメの質問