public static function get_multiple_from_wp_pages($wp_pages, $no_marked_infos = false, $no_wp_data = false) { $nodes_data = array(); if (!empty($wp_pages)) { $ids_wp = array(); $indexed_wp_pages = array(); foreach ($wp_pages as $page) { $ids_wp[] = $page->ID; $indexed_wp_pages[$page->ID] = $page; } $intern_data_loaded = ApmNodeDataIntern::load_multiple_from_wp_ids($ids_wp); $loaded_nodes_data = $intern_data_loaded['nodes_data']; $ids_wp = $intern_data_loaded['ids_wp']['page']; if (empty($loaded_nodes_data)) { return; } if (!$no_wp_data) { //Preload wp cached meta data, so they are not retrieved one by one in //the following loop of "load_data_from_wp_entity()" : update_postmeta_cache($ids_wp); } $marked_infos = !$no_marked_infos && ApmAddons::addon_is_on('flagged_pages') ? new ApmMarkedNodes() : null; foreach ($loaded_nodes_data as $apm_id => $intern_data) { $display_data = new ApmNodeDataDisplay(); $display_data->set_intern_data($intern_data); if (!$no_wp_data) { $display_data->load_data_from_wp_entity($indexed_wp_pages[$intern_data->wp_id]); } if (!$no_marked_infos && ApmAddons::addon_is_on('flagged_pages')) { $display_data->set_marked($marked_infos->get_node_mark($apm_id)); } $nodes_data[$intern_data->wp_id] = $display_data; } } return $nodes_data; }