2017-04-25 66 views
0

我使用WordPress的一个CSS框架和一个自定义菜单中添加类 “当前菜单项”:的WordPress:自定义菜单,上<a>标签

<?php 
     $menuParameters = array(
      'theme_location' => 'menu-1', 
      'menu_id' => 'primary-menu', 
      'container'  => false, 
      'echo'   => false, 
      'items_wrap'  => '%3$s', 
      'depth'   => 0, 
     ); 

     $output = strip_tags(wp_nav_menu($menuParameters),'<a>'); 
     $output = preg_replace('/<a/', '<a class="nav-item"', $output); 
     echo $output;  
     ?> 

结果:

<div class="nav-right nav-menu"> 
<a class="nav-item" href="/">Page1</a> 
<a class="nav-item" href="/"> Page2</a> 
<a class="nav-item" href="/"> Page3</a> 
    </div> 

什么我想:(如果我在页面上“第2页”)

<div class="nav-right nav-menu"> 
<a class="nav-item" href="/">Page1</a> 
<a class="nav-item current-menu-item" href="/"> Page2</a> 
<a class="nav-item" href="/"> Page3</a> 
    </div> 

我不觉得钩,walker_menu,或其他解决方案添加一个类上当前菜单(例如原始Wordpress菜单上的“当前菜单项”)

任何想法?

谢谢!

+0

你可以发布你想要的结果吗?您是否检查过[this](https://developer.wordpress.org/reference/functions/wp_nav_menu/) –

+0

我编辑我的帖子以添加我想要的结果。我已经检查过,是的,谢谢,但我没有找到解决方案 –

回答

0

尝试像下面

添加到您的$menuParameterscurrent ARG。

$menuParameters = array(
      'theme_location' => 'menu-1', 
      'menu_id'  => 'primary-menu', 
      'container'  => false, 
      'current'  => max(1, get_query_var('paged')), // added this 
      'echo'   => false, 
      'items_wrap'  => '%3$s', 
      'depth'   => 0, 
     ); 

    $output = strip_tags(wp_nav_menu($menuParameters),'<a>'); 

    $output = preg_replace('/<a/', '<a class="nav-item"', $output); 

    $output = preg_replace('/current', 'current-menu-item', $output); // added this 

    echo $output;  
    ?> 

如果不工作,发挥一点与$output的第二preg_replace或删除它,只是指活动项目时,它刚刚类current而不是current-menu-item。如果你删除它,我会预期以下结果:

<div class="nav-right nav-menu"> 
    <a class="nav-item" href="/">Page1</a> 
    <a class="nav-item current" href="/"> Page2</a> 
    <a class="nav-item" href="/"> Page3</a> 
</div> 
+0

我试过这个代码,但它没有工作,即使玩$输出。该菜单根本没有出现。 –

+0

您是否尝试彻底删除'$ output = preg_replace('/ current',...'? –

+0

是的,我尝试过,菜单出现,但只是与类“nav-item” –