2011-01-13 8 views
0

悪いタイトルのためにお詫び申し上げます。ユーザーがそれぞれのページにいるかどうかに応じて、Aタグにクラスを追加する必要があります。そこでここでは、明確にするためのコードは次のとおりです。PHP_SELFを使用しています

<?php 
$basename = substr(strtolower(basename($_SERVER['PHP_SELF'])),0,strlen(basename($_SERVER['PHP_SELF']))-4); 
?> 

そして私は、メニューにこのコードを使用:

<li><a href="index.php"<?php if ($basename == 'index') { echo ' class="current"'; } ?>>Home</a></li> 
<li><a href="about.php"<?php if ($basename == 'about') { echo ' class="current"'; } ?>>About</a></li> 

あなたが見ることができるように、ユーザーがindex.phpのかについての上にある場合に応じて、 .php、class = currentが挿入されます。これは正常に動作しますが、私はWordpressでこのコードを使用しています。すべてのページがこのタイプのURLである場合:index.php?page_id = X

したがって、about page URLはindex.php?page_id = 9です。クラスを常にインデックス1に入力します。私が知っている解決策は、$basename == 'index'はとにかく完全なURLにすることができるということだけです。 $basename == 'index.php?page_id=X'しかし、私はその仕事をすることができませんでした。

ヘルプ!私はPHPに慣れていないので、詳細な返答は感謝します。

+0

はあなたのメニューリンクが実際にどのように見えるか投稿することができますか? – amosrivera

+0

まあ、$ _SERVER ['PHP_SELF'を完全なURLにする方法があれば、私は何を求めていますか? $ basename == 'index'の代わりに$ basename == 'index.php?random'を指定する必要があります – Petra

+0

WPのURL書き換えを使用すると、domain.com/about/のような魅力的な "slug" URLが生成されます'? –

答えて

1

現在のファイル:__FILE__

ファイルのカレントフォルダdirname(__FILE__).DIRECTORY_SEPARATOR // in 5.3: __DIR__

+0

申し訳ありませんがpowtac、あなたの答えを具体化していただけますか?私はPHPで経験していないので、具体的にしてください! – Petra

+0

$ _SERVER ['PHP_SELF'を完全なURLにする方法があれば尋ねます。 $ basename == 'index'の代わりに$ basename == 'index.php?random'を置く必要があるので、 – Petra

0
$page = $_GET[page_id]; 

私がURLの場合、これは例9のために戻ると信じ= 9

0

page_idのはあなたを考えると」? Wordpressを使用して、私はあなたがページの現在の場所を決定するページの上部に向かって変数を作ることをお勧めしたいと思います。

$current = strtolower($path_parts['filename']);

$path_parts = pathinfo($_SERVER['PHP_SELF']);はその後のような、その変数を取り、<a></a>でそれを設定します。

<a <?php if($current == 'about') echo 'class="current"'; ?> href="#">About</a>

またはこのようなものは、それはとにかくスタートです。

追加情報:http://php.net/manual/en/function.pathinfo.php

0
function GetFileName() 
{ 
    $currentFile = basename($_SERVER["PHP_SELF"]); 
    $parts = Explode('.', $currentFile); 
    return $parts[0]; 
} 
$basename = GetFileName(); 

<li> 
    <a href="index.php" <?php if($basename =="index") echo "class='current'"; ?>>Home</a> 
</li> 
<li> 
    <a href="about.php" <?php if($basename =="about") echo "class='current'"; ?>>About</a> 
</li 

>

関連する問題