我有一个主菜单,其中包含我的每个服务CPT的项目。
每个CPT都有另一个与之关联的菜单,我使用ACF get\\u field函数获取其id。
我要做的是将这些服务菜单中的项目作为子菜单插入主菜单中服务链接下。
我正在使用wp\\u get\\u nav\\u items过滤器,但我似乎无法获得正确的格式。我想我可以将服务菜单中的项附加到主菜单项的数组中,更改menu\\u item\\u父项。然而,这似乎不起作用。它最终只是在顶层附加所有项目。
function custom_insert_service_menus($items, $menu, $args){
if($menu->slug != \'main-menu\') return $items; // only for main-menu
$new_items = [];
foreach($items as $item){
if($item->object == \'service\'){
$menu_id = get_field(\'menu\', $item->object_id);
if(!empty($menu_id)){ // no menu so skip item
$service_menu_items = wp_get_nav_menu_items($menu_id);
foreach($service_menu_items as $service_menu_item){
if($service_menu_item->menu_item_parent == 0){
$service_menu_item->menu_item_parent = $item->ID;
}
$new_items[] = $service_menu_item;
}
}
}
}
$combined_items = array_merge($items, $new_items);
return $combined_items;
}
add_filter(\'wp_get_nav_menu_items\', \'custom_insert_service_menus\',null,3);