2011-01-13 66 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

所以關於頁面的URL是index.php?page_id = 9,這意味着它將始終將該類輸入索引之一。我所知道的唯一解決方案是$basename == 'index'無論如何都可以是完整的URL,例如$basename == 'index.php?page_id=X'但我無法做到這一點。

幫助!請注意,我沒有使用PHP的經驗,所以任何回覆的細節將不勝感激!

+0

你可以發佈你怎麼菜單鏈接真正的樣子? – amosrivera 2011-01-13 17:04:40

+0

那麼,我要問的是,如果有什麼辦法讓$ _SERVER ['PHP_SELF'成爲完整的URL特定的。所以,我需要把$ basename =='index.php?random'而不是$ basename =='index' – Petra 2011-01-13 17:09:11

回答

1

當前文件:__FILE__

文件的當前文件夾dirname(__FILE__).DIRECTORY_SEPARATOR // in 5.3: __DIR__

0
$page = $_GET[page_id]; 

我相信這將返回例如9如果URL是PAGE_ID = 9

0

考慮到你」重新使用Wordpress,我建議你在頁面頂部做一個變量,確定頁面的當前位置。

$path_parts = pathinfo($_SERVER['PHP_SELF']);

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

然後取這個變量,並將其設置在<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 

>