wordpress代码实现导航当前页面高亮

以下代码来源于网络,可以实现当前页面导航高亮,进入文章也可实现当前类别高亮,但对下拉菜单无效。

PS:js代码需要放在当前页,放在单独js文件内会失效。此代码不包含css样式,请根据代码自行修改…

<!-- menus START -->
<script type="text/javascript" language="javascript">
 function gaoliangfenlei()
 { 
  var nav = document.getElementById("menus");    
  var links = nav.getElementsByTagName("li");    
  var lilen = nav.getElementsByTagName("a"); //判断地址    
  var currenturl = document.location.href;    
  var last = 0;    
  for (var i=0;i<links.length;i++)    
  {    
   var linkurl = lilen[i].getAttribute("href");    
   if(currenturl.indexOf(linkurl)!=-1)    
   {    
    last = i;    
   }    
  } 
 links[last].className = "current_page_item"; //高亮代码样式
 }
</script> 
<script type="text/javascript" language="javascript">
 function gaoliangwenzhangfenlei(catname)
 {
  var caidan ="<?php echo $caidan ?>" ;//赋值
  var fenleiming ="<?php echo $catname ?>" ;//赋值
  var nav = document.getElementById("menus");    
  var links = nav.getElementsByTagName("li");  
  var as = nav.getElementsByTagName("a");  
  var last = 0;    
  for (var i=0;i<links.length;i++)    
  {    
   var li = links[i].innerHTML;
   var ai=as[i].innerHTML;        
   if(ai==catname)    
   {    
    last = i;
    links[last].className = "current_page_item"; //高亮代码样式
   } 
  }         
 }
</script> 

<ul id="menus"><li  <?php if (is_home()) { echo ' class="current_page_item"';} ?> ><a class="home " href="/">首页</a></li>
<?php 
$caidan=wp_nav_menu(array('theme_location' => 'header-menu','container' => 'false','echo' => false,'items_wrap'=> '%3$s', ) ); 
$catname = '';
if(!is_page() && !is_home()) {
    $cat = get_the_category();
    $catid = $cat[0]->cat_ID;
    $catname = $cat[0]->cat_name;
 if(is_category() ){
     echo $caidan;
     echo "<script type='text/javascript' language='javascript'>gaoliangfenlei()</script>";
 }
 else{
  echo $caidan;
  echo "<script type='text/javascript' language='javascript'>gaoliangwenzhangfenlei('$catname')</script>";
 }
}
else{
 echo $caidan;
}
?>
</ul>

 <!-- menus END -->