2011-01-12 71 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>