Пример #1
0
 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;
 }