Я построил простую функцию php, которая извлекает меню Wordpress и преобразует его в читаемый массив. Вот мой код:
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]['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;
$menu[$m->menu_item_parent]['children'][$m->ID] = $submenu[$m->ID];
}
}
return $menu;
}
Чего я хотел бы добиться, так это еще одного (# подменю2), которое будет перебирать $ submenu, проверять, является ли какой-либо из них пост-родителями, и вставлять в него своих потомков в массиве.
Другими словами: этот массив в настоящее время создает отношения вроде этого:
(если у родителя нет детей, присвойте эти значения)
(если у родителя есть дети, переберите детей и добавьте эти значения)
я хочу добавить
(если у ребенка есть дети, переберите детей и добавьте эти значения).
Любые указания относительно того, куда / как пойдет третий цикл, я был бы очень признателен.
Заранее спасибо!