在Wordpress中创建子菜单

时间:2013-12-30 15:50:02

标签: wordpress menu

我有以下代码;

      <!-- Primary navigation -->  
  <nav class="sixteen columns primary">
    <ul id="nav"><!-- This ID (nav) is used to identify which menu is used for the mobile menu -->  
        <?php

            $args = array(
                'menu' => 'main-menu',
                'echo' => false
            );

            echo strip_tags(wp_nav_menu( $args ), '<a><li>');
        ?>
    </ul>
  </nav>

为我的WordPress菜单创建此代码


nav class="sixteen columns primary">
ul id="nav"><!-- This ID (nav) is used to identify which menu is used for the mobile menu -->

li id="menu-item-14" class="menu-item menu-item-type-post_type menu-item-object-page current-menu-item page_item page-item-8 current_page_item menu-item-14"><a href="http://www.testsite123-abc.com/">Home</a></li>

li id="menu-item-13" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-13"><a href="http://www.testsite123-abc.com/about-me/">About Me</a></li>
li id="menu-item-17" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-has-children menu-item-17"><a href="http://www.testsite123-abc.com/portfolio/">Portfolio</a>

li id="menu-item-76" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-76"><a href="http://www.testsite123-abc.com/portfolio/folio-1/">folio-1</a></li>

/li>

li id="menu-item-20" class="menu-item menu-item-type-post_type menu-item-object-page menu-item-20"><a href="http://www.testsite123-abc.com/contact-me/">Contact Me</a></li>
/ul>

/nav>

---

这适用于Wordpress和jsSelectNav移动菜单,但我的问题是链接folio-1是Portfolio的子页面,但我认为由于strip_tags函数,它的ul标签被剥离如果我将它们设置为不被删除,则会添加无关的内容,这会阻止菜单运行。

我有什么方法可以让它工作,或者是否有其他代码能够满足我的需要。

由于

PS尝试并且未能添加输出代码到最后我必须将其添加为文本而不打开&lt;请随时纠正。

1 个答案:

答案 0 :(得分:0)

你想在wordpress中创建自定义子菜单,因为你需要变量中的自定义菜单项。

首先使用 wp_get_nav_menu_items()函数获取单个变量中的所有菜单项。

之后使用以下功能,您可以获得html菜单。

<?php
function generatePageTree($datas, $parent = 0, $depth=0)
{
    if($depth>1000) return ''; // Make sure not to have an endless recursion
    if($depth==1)
        $tree = '<ul class="sub_menu">';
    else
        $tree = '<ul>';
    for($i=0, $ni=count($datas); $i < $ni; $i++){
        if($datas[$i]->menu_item_parent == $parent){
            $tree .= '<li>';
            $tree .= '<a href="'.$datas[$i]->url.'">'.$datas[$i]->title.'</a>';
            $tree .= generatePageTree($datas, $datas[$i]->ID, $depth+1);
            $tree .= '</li>';
        }
    }
    $tree .= '</ul>';
    return $tree;
}
?>

使用上面的代码,您可以获得自定义菜单的HTML。

你也可以在这里获得更多细节。

http://www.beingdevelopers.com/create-custom-sub-menu-wordpress/