WordPress:在使用wp_get_nav_menu_items()时,是否可以获取当前页面?

WordPress:在使用wp_get_nav_menu_items()时,是否可以获取当前页面?,wordpress,menu,Wordpress,Menu,我正在制作一份专门的菜单。通常情况下,我会使用常规菜单功能和自定义导航助行器,但这个特殊的菜单系统使用其他元素。我仍然希望作者能够编辑实际的菜单,所以我想以常规的WordPress菜单为基础 $locations = get_nav_menu_locations(); if (isset( $locations[ $menu_name ])){ $menu_items = wp_get_nav_menu_items($locations[ $menu_name ]); if (c

我正在制作一份专门的菜单。通常情况下,我会使用常规菜单功能和自定义导航助行器,但这个特殊的菜单系统使用其他元素。我仍然希望作者能够编辑实际的菜单,所以我想以常规的WordPress菜单为基础

$locations = get_nav_menu_locations();
if (isset( $locations[ $menu_name ])){
    $menu_items = wp_get_nav_menu_items($locations[ $menu_name ]);
    if (count($menu_items > 0)){
        foreach ( $menu_items as $key => $menu_item ) {
            $title = $menu_item->title;
            $url = $menu_item->url;
            $select_state = ''; // figure out if this is selected
            $oStr .= '<div class="flyout-menu ' . $select_state . '">';
            $oStr .= "\n";
            $oStr .= '<a href="' . $url . '">' . $title . '</a>';
            $oStr .= '<!-- ID:'.$menu_item->ID . ' object_id:'.$menu_item->object_id . ' thePostID:'.$thePostID . " -->\n";
            $oStr .= '</div>';
            $oStr .= "\n";
        }
    } else {
        $oStr .= '<!-- empty menu -->';
    }    
} else {
    $oStr .= '"' . $menu_name . '" not found.';
}
$locations=获取导航菜单位置();
如果(设置($locations[$menu\u name])){
$menu_items=wp_get_nav_menu_items($locations[$menu_name]);
如果(计数($菜单项>0)){
foreach($key=>$menu\u项的菜单项){
$title=$菜单项->标题;
$url=$menu\u项->url;
$select_state='';//确定是否选中此选项
$oStr.='';
$oStr.=“\n”;
$oStr.='';
$oStr.='\n”;
$oStr.='';
$oStr.=“\n”;
}
}否则{
$oStr.='';
}    
}否则{
$oStr.='''.$menu_name'.“未找到”;
}
我想将常规的current_page_items类添加到我的menu元素中,但在wp_get_nav_menu_items()返回的数组中没有任何指示这一点的内容

我在网上发现了一些尝试,但它们都有无效的假设,比如当前页面ID与菜单对象ID匹配(只有当菜单指向页面时才是如此)

如果使用wp_get_nav_menu_items()无法做到这一点,我将正常呈现菜单并捕获它。然后解析它并构建我的新菜单。但是如果我可以从wp_get_nav_menu_items()获取数组,这将更简单


那么,有没有一种方法可以在不使用wp_nav_menu()的情况下获得哪个菜单项应该具有当前的_page_item类呢?

我可以问一下您需要添加哪些新的菜单项吗?有很多方法可以以超级简单的方式添加或预先添加菜单项。如果您提供这些详细信息,我可能会为您提供一个超级简单的解决方案!在这种情况下,我只需要顶级菜单。然后我会将它们与自定义的“post type”弹出框相匹配。“我只是想用wp_get_nav_menu_items()来构建它,而不是用wp_nav_menu()来定制助行器。(这是我处理这类事情的常规方法。)所以我想澄清一下。。。您允许客户创建他们想要的任何菜单。。。您可以通过从客户端创建的菜单中仅获取顶级项来创建自定义菜单,该菜单可以链接到页面/帖子/类别/任何内容。。。然后为每个顶级项创建自定义子菜单。。。现在,您需要顶级项和自定义子菜单项来获取当前的页面项类。这是正确的吗?你是在做实验吗?我不明白这怎么会比自定义菜单漫游器更容易…如果有办法知道哪个项目应该使用当前页面项目,那么这个答案会简单得多。这是一个恼人的弹出式菜单。实际菜单只有一个级别。我有面板的自定义帖子类型。如果菜单项与面板的名称匹配,我会将它们连接在一起。否则,它将单独保留该项,并正常链接。但在这一点上,是的,它看起来像一个定制的步行器。看看我能问一下你需要添加哪些新的菜单或东西吗?有很多方法可以以一种非常简单的方式附加或预先添加菜单项。如果你提供这些细节,我可能会给你一个超级简单的解决方案!在这种情况下,我只想要顶级菜单。然后我将它们与自定义的帖子类型“弹出”匹配。我只是想用wp_get_nav_menu_items()来构建它,而不是用wp_nav_menu()和自定义walker。(这是我处理这类事情的常规方法。)所以我想澄清一下。。。您允许客户创建他们想要的任何菜单。。。您可以通过从客户端创建的菜单中仅获取顶级项来创建自定义菜单,该菜单可以链接到页面/帖子/类别/任何内容。。。然后为每个顶级项创建自定义子菜单。。。现在,您需要顶级项和自定义子菜单项来获取当前的页面项类。这是正确的吗?你是在做实验吗?我不明白这怎么会比自定义菜单漫游器更容易…如果有办法知道哪个项目应该使用当前页面项目,那么这个答案会简单得多。这是一个恼人的弹出式菜单。实际菜单只有一个级别。我有面板的自定义帖子类型。如果菜单项与面板的名称匹配,我会将它们连接在一起。否则,它将单独保留该项,并正常链接。但在这一点上,是的,它看起来像一个定制的步行器