2011-01-12 97 views
4

我在Wordpress模板上製作菜單,需要菜單來檢測當前頁面並突出顯示它。因此,例如,我的菜單是:使用php檢測頁面文件名?

<li><a href="index.php" class="current">Home</a></li> 
<li><a href="about.php">About</a></li> 

因此,如果用戶是關於頁面上,我要一個有「類=電流」。這怎麼可能?我聽說使用$_SERVER['PHP_SELF']是可能的?請明白,我對PHP編碼沒有任何知識,所以請詳細回覆。

回答

11

我使用這樣一個小片段。如果您的訪客是about.php$basename將等於about

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

HTML會是這樣的。

<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> 
0

你可以使用形式的東西:

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

這就是說,你可能會想上述納入的功能。

無論如何,我建議您在繼續之前閱讀PHP手冊的getting started section - 這將花費時間。

+0

出於興趣,我爲什麼需要將其納入一個功能,如果您的示例工作? – alexander 2011-01-12 18:23:27

+0

也會'PHP_SELF'] =='index.php'檢測到一個URL是index.php?random ...? – alexander 2011-01-12 18:24:28

1
$myPage = $_SERVER['PHP_SELF']; 
<li><a href="index.php" class="<?echo ($myPage == 'index.php'?'current':'')?>">Home</a></li> 
<li><a href="about.php" class="<?echo ($myPage == 'about.php'?'current':'')?>">About</a></li>