在Wordpress中创建子菜单

在Wordpress中创建子菜单,wordpress,menu,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 = arra

我有以下代码

      <!-- 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菜单创建了此代码

这在Wordpress和移动菜单上运行良好,但我的问题是链接folio-1是公文包的子页面,但我认为由于strip_标签的功能,它的ul标签会被剥离,如果我将它们设置为不剥离,则会添加额外的标签,从而阻止菜单工作

是否有任何方法可以让它工作,或者是否有其他代码可以满足我的需要

谢谢


PS尝试添加输出代码,但失败。最后,我不得不在没有打开的情况下将其作为文本添加。<请随意更正。

您想在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

你也可以在这里得到更多的细节

<?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;
}
?>