Adding menu items dynamically using wp_nav_menu_objects
You should also specify db_id field for the parent menu item: function epc_add_menu_item( $post_id, $menu_order, $item, $child ) { … $new_item->db_id = $menu_order; … } On a side note, menu item that has children should also have menu-item-has-children class.