2012-11-30 53 views
3

我在我的主题中使用三个主要导航,我试图通过所有主要导航的自定义ID放置到菜单的最终链接。WordPress的:添加自定义ID到最后的li在wp_nav_menu

这就是我要为:

<nav id="menu" role="navigation" class="menu-primary"> 
    <ul id="nav" class="menu"> 
    <li id="menu-item-418" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-418"><a href="#">About</a></li> 
    <li id="menu-item-474" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-474"><a href="#">Work</a></li> 
    <li id="menu-item-463" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-463"><a href="#">Blog</a></li> 
    <li id="menu-item-416" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-416"><a href="#">Contact</a></li> 
    <li id="back" class="menu-item menu-item-type-custom menu-item-object-custom menu-item-491"><href="#header">back</a></li> 
    </ul> 
</nav> 

正如你所看到的,最终李娜“回”的ID。任何想法如何在不使用js的情况下完成此任务?我可以看到我可以如何改变班级,但不是身份证件。我为CSS目的这样做。

任何帮助将不胜感激!

+0

我是否正确地说你试图将相同的id应用到三个菜单中的最后一个链接?一个id只能使用一次,如果它被分配了三次,你应该使用一个类。如果你没有通过JS引用它,那么你为什么需要它是一个ID? – McNab

回答

1

如果您使用的是wp_nav_menu,那么最好的方法是使用Wordpress提供的类。我不认为有一种方法可以将特定的ID添加到菜单项中。

除非你用jQuery做这个...

0

你将需要使用JS/jQuery来做到这一点。 WordPress菜单是动态编写的,你不能直接进入主题文件并编辑li文件。

如果你的菜单不在同一页上,那么你可以使用一个ID和第一个例子。您需要将每个菜单的#nav更改为UL的ID,并重复一行3次,每次菜单一次。

$(document).ready(function() { 
    $('#nav li').last().attr('id', 'back'); 
}); 

如果你的菜单在同一个页面上,你需要使用下面的类。您需要将每个菜单的#nav更改为UL的ID,并重复一行3次,每次菜单一次。也就是说,除非所有的菜单在UL上都有一门课,否则您只能使用$('#classNameHere li').last().addClass('back');

$(document).ready(function() { 
    $('#nav li').last().addClass('back'); 
}); 
2

除了更改的id可以插入/注入另一menu item/li在最后一个自定义菜单项类似以下

add_filter('wp_nav_menu_items', 'your_custom_menu_item'); 
function your_custom_menu_item ($items) 
{ 
    $items .= '<li id="back" class="what-ever"><a href="#">Back</a></li>'; 
    return $items; 
} 

只需粘贴在functions.php的代码片段,它会添加自定义menu item在你的菜单中。希望这可以帮助。

此外还有另一种方法可以使用自定义walkerhere is a nice example更改menu

相关问题