您需要查看WP Nav Menu。
我猜这是您正在开发的主题?如果是这样,请在您的 functions.php 文件中注册一个导航菜单。这将允许您在 Wordpress 仪表板(外观->菜单)中定义您的菜单,并根据您的喜好对其进行自定义。
我建议这样做的原因是,它不仅可以让您以非常直观的方式完全控制菜单,而且还可以自动定义样式表可能需要的所有类(包括当前项目和祖先)。
这是您可以使用的最干净的选择。您还可以查看WP List Pages以获取类似(尽管更有限)的解决方案。
否则,你将不得不做一些像这样肮脏的事情:
<?php
$id = get_the_ID();
$class = ' class="current"';
?>
<ul>
<li<?php echo is_home() ? $class : ''; ?>><a href="<?php echo home_url(); ?>">home</a></li>
<li<?php echo $id==$serives_ID ? $class : ''; ?>><a href="<?php echo get_permalink($serives_ID); ?>">services</a></li>
<li<?php echo $id==$procedure_ID ? $class : ''; ?>><a href="<?php echo get_permalink($procedure_ID ); ?>">procedure</a></li>
<li<?php echo $id==$about_ID ? $class : ''; ?>><a href="<?php echo get_permalink($about_ID); ?>">about</a></li>
<li<?php echo $id==$contact_ID ? $class : ''; ?>><a href="<?php echo get_permalink($contact_ID); ?>">contact</a></li>
</ul>
将 $services_ID、$procedure_ID 等替换为它们各自的页面 ID,如果当前 ID 与其中任何一个匹配,则该项目将应用一个“当前”类,然后您可以在样式表中定位它。
我建议使用服务器端解决方案而不是使用任何类型的 jQuery 的主要原因是,这不是一个专门适合 jQuery 本身的任务。
虽然 jQuery 库是一个强大的工具,但 Wordpress 具有您需要检测在此实例中要检测的所有内容所需的所有内置功能。在让客户端的浏览器接管之前,让服务器做尽可能多的工作。否则,您将看到一些严重的加载时间。
更新:
根据您的最后评论,如果您打算采用凌乱的方式并且不想为查找页面 ID 而烦恼,您也可以这样做:
<?php
$slugs = array('services', 'procedure', 'about-us', 'contact-us');
?>
<ul>
<li<?php echo is_home() ? ' class="current"' : ''; ?>><a href="<?php echo home_url(); ?>">home</a></li>
<?php
foreach($slugs as $slug)
{
$page = get_page_by_path($slug);
$class = is_page($slug) ? ' class="current"' : '';
echo '<li'.$class.'><a href="'.get_permalink($page->ID).'">'.str_replace('-us','',$slug).'</a></li>';
}
?>
</ul>
基于最后评论的更新:
现在您正在使用 wp_nav_menu,您可以使用 CSS 定位当前菜单项。这是一个将当前项目的背景变为红色的示例:
<style type="text/css">
.current-menu-item{background:#F00;}
</style>
Apply these rules either in your header, or preferably in your main style.css file. Good luck!