public function wpImportContents($file) { $wp_import = new WP_Import(); $wp_import->fetch_attachments = false; // doesn matter // load data from saved option $wp_import->post_orphans = get_option('_cri_post_orphans', array()); $wp_import->processed_posts = get_option('_cri_processed_posts', array()); $wp_import->url_remap = get_option('_cri_url_remap', array()); // the odd filter add_filter('import_post_meta_key', array($wp_import, 'is_valid_meta_key')); add_filter('http_request_timeout', array(&$wp_import, 'bump_request_timeout')); // start buffer ob_start(); // parse file and gather data $wp_import->import_start($file); // map author $wp_import->get_author_mapping(); wp_suspend_cache_invalidation(true); $wp_import->process_categories(); $wp_import->process_tags(); $wp_import->process_terms(); $wp_import->process_posts(); wp_suspend_cache_invalidation(false); // update incorrect/missing information in the DB $wp_import->backfill_parents(); $wp_import->backfill_attachment_urls(); $wp_import->remap_featured_images(); // end has output, so buffer it out $wp_import->import_end(); // ignore the output, call in buffer do_action('radium_after_content_import'); ob_end_clean(); // delete all attachment related stats foreach (array('_cri_post_orphans', '_cri_processed_posts', '_cri_url_remap') as $op) { delete_option($op); } return true; }