2012-09-11 67 views
0

我试图在wordpress中的导航菜单中添加div。 wp_nav_menu加载所有菜单项,但我不知道如何将div添加到结构中。我的目标是在菜单项悬停上弹出一个子菜单,并在子菜单块顶部有一个箭头图像,使其看起来像一个方形文本气球。我知道如何把它放在我想要的东西和所有东西上,但不知道如何在那里获得div。插入div到wp_nav_menu

现在,看起来像这样

<ul class="menu"> 
<li> 
    <a> 
    <ul class="submenu"> 
    <li> 
    <a> 

而且我希望它看起来像这样

<ul class="menu"> 
<li> 
    <a> 
    <ul class="submenu"> 
    <div class="pointer"> 
    <li> 
     <a> 

我怎样才能做到这一点?

回答

2

最好的办法是使用Walker Class。在functions.php文件添加此:

class Walker_Nav_Pointers extends Walker_Nav_Menu 
{ 
    function start_lvl(&$output, $depth = 0, $args = array()) 
    { 
     $indent = str_repeat("\t", $depth); 
     $output .= "\n$indent<ul class=\"sub-menu\">\n"; 
     $output .= "\n<div class=\"pointer\">\n"; 
    } 
    function end_lvl(&$output, $depth = 0, $args = array()) 
    { 
     $indent = str_repeat("\t", $depth); 
     $output .= "$indent</ul>\n".($depth ? "$indent</div>\n" : ""); 
    } 
} 

然后无论你调用你的导航菜单,将其添加到现有的参数:

<?php 
$navArgs = array('walker' => new Walker_Nav_Pointers()); 
wp_nav_menu($navArgs); 
?> 

上面的例子是未经测试,我可以”不保证它会直接进入大门,但它应该让你开始。

有关WP Nav Menus Here的更多信息,以及有关Adding Custom Walkers Here的一些信息。

+0

工作就像一个魅力,谢谢! –