使用PHP_SELF
对于错误的标题表示抱歉。我需要将一个课程添加到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的经验,所以任何回复的细节将不胜感激!
当前文件:__FILE__
文件的当前文件夹dirname(__FILE__).DIRECTORY_SEPARATOR // in 5.3: __DIR__
$page = $_GET[page_id];
我相信这将返回例如9如果URL是PAGE_ID = 9
考虑到你”重新使用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>
或者这样的事情,它是一个开始呢。
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
>
你可以发布你怎么菜单链接真正的样子? – amosrivera 2011-01-13 17:04:40
那么,我要问的是,如果有什么办法让$ _SERVER ['PHP_SELF'成为完整的URL特定的。所以,我需要把$ basename =='index.php?random'而不是$ basename =='index' – Petra 2011-01-13 17:09:11