swp_two_lvl_menu_items

Функция swp_two_lvl_menu_items() позволяет вывести данные пунктов меню в виде многомерного массива с вложенными подпунктами.
Обратите внимание, что функция поддерживает только один уровень вложенности. Это сделано с целью уменьшения нагрузки на систему, путем ухода от использования нескольких циклов. Поэтому, если вы планируете использовать меню с более чем одним уровнем вложения, данная функция может работать не корректно.

Параметры:

1
echo swp_two_lvl_menu_items($menu_id = 0);
  • $menu_id — ID-меню, пункты которого вы хотите получить.

Пример использования:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<?php
function swp_two_lvl_menu_items($menu = 0){
	$args = array(
		'order'                   => 'ASC'
		,'orderby'                => 'menu_order'
		,'post_type'              => 'nav_menu_item'
		,'post_status'            => 'publish'
		,'output'                 => ARRAY_A
		,'output_key'             => 'menu_order'
		,'nopaging'               => true
		,'update_post_term_cache' => false 
	);
	$items = wp_get_nav_menu_items( $menu_id, $args );
 
	if($items){
		$new_menu = array();
		foreach($items as $key=>$item){
			if($item->menu_item_parent == 0){
				$new_menu[$item->ID] = (array)$item;
			}else{
				$new_menu[$item->menu_item_parent]['child'][] = $item;
			}
		}
		return $new_menu;
	}else{
		return false;
	}
}
 
echo swp_two_lvl_menu_items(1);
?>

Оставить комментарий


× семь = 63