如何访问子菜单的描述()

好吧, 我试图用下面的代码获取菜单项和子菜单的描述, 但我无法获取它。
【如何访问子菜单的描述()】我正在尝试获得” 关于我们” 的描述和” 我们的董事会工作人员” 的描述:

如何访问子菜单的描述()

文章图片
由于菜单项(关于我们)运行良好, 但由于某种原因, 子菜单(我们的董事会和员工)不包含信息描述, 而仅包含ID, URL和标题, 我已经尝试了var_dump()子菜单对象(如你在下面的代码中看到的), 但没有它。
function get_menu_section_description($sectionUrl){$menu = wp_get_menu_array("menu"); $desc = ""; foreach ($menu as $key => $item){ $arr = $item['url']; // var_dump($item); if ($sectionUrl == $arr[0]) { $desc = $item['description']; }if(sizeof($item['children']) > 0){ foreach ($item['children'] as $key => $children){ // var_dump($children); $arr2 = $children['url']; if ($sectionUrl == $arr2) { $desc = $children['description']; } } }}return $desc; }

有谁知道为什么没有说明项, 如何激活它或可能的解决方案?提前致谢。
#1 从WordPress 3.0开始, 你不再需要自定义Walker!
有walker_nav_menu_start_el过滤器, 请参阅https://developer.wordpress.org/reference/hooks/walker_nav_menu_start_el/
例子
function add_menu_description($item_output, $item, $depth, $args) { if (strlen($item-> description) > 0 ) { // append description after link $item_output .= sprintf('< span class="description"> %s< /span> ', esc_html($item-> description)); // insert description as last item *in* link ($input_output ends with "< /a> {$args-> after}") //$item_output = substr($item_output, 0, -strlen("< /a> {$args-> after}")) . sprintf('< span class="description"> %s< /span > ', esc_html($item-> description)) . "< /a> {$args-> after}"; }return $item_output; } add_filter('walker_nav_menu_start_el', 'add_menu_description', 10, 4);

#2 我几天后发现了一个解决方案, 所以可能对某人有帮助, 我遇到的问题是调用菜单wp_get_menu_array()的功能, 我不得不在子菜单中添加说明, 仅是:
function wp_get_menu_array($current_menu) {$array_menu = wp_get_nav_menu_items($current_menu); $menu = array(); foreach ($array_menu as $m) {if (empty($m-> menu_item_parent)) { $menu[$m-> ID] = array(); $menu[$m-> ID]['ID']=$m-> ID; $menu[$m-> ID]['title']=$m-> title; $menu[$m-> ID]['url']=$m-> url; $menu[$m-> ID]['classes']=$m-> classes; $menu[$m-> ID]['description']=$m-> description; $menu[$m-> ID]['children']=array(); } } $submenu = array(); foreach ($array_menu as $m) { if ($m-> menu_item_parent) { $submenu[$m-> ID] = array(); $submenu[$m-> ID]['ID']=$m-> ID; $submenu[$m-> ID]['title']=$m-> title; $submenu[$m-> ID]['url']=$m-> url; $submenu[$m-> ID]['description']=$m-> description; //Line added; $menu[$m-> menu_item_parent]['children'][$m-> ID] = $submenu[$m-> ID]; } } return $menu; }

    推荐阅读