我正在建立一个专门的菜单。通常,我会使用常规菜单功能和自定义导航器,但此特定菜单系统使用其他元素。我仍然希望作者能够编辑实际的菜单,所以我希望它基于常规的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.';
}
我想将常规的current_page_item类添加到我的菜单元素中,但是我没有看到wp_get_nav_menu_items()返回的数组中的任何内容表明这一点。
我在网上发现了一些尝试,但它们都有无效的假设,例如当前页面ID与菜单对象ID匹配。 (仅当菜单指向一个页面时才会出现。)
如果用wp_get_nav_menu_items()无法做到这一点,我会正常渲染菜单并捕获它。然后解析它并构建我的新菜单。但是如果我能从wp_get_nav_menu_items()获取数组会更简单。
那么有没有办法在不使用wp_nav_menu()的情况下获取哪个菜单项应该有current_page_item类?