ImportWP – Import any XML or CSV File into WordPress


ImportWP is an Advanced WordPress CSV/XML Importer, allowing you to easily drag and drop data into import templates. ImportWP has been built with developers in mind allowing import templates to be easily created and mapped to post_types, taxonomies, users, or tables.


  • Import from XML and CSV files.
  • Import WordPress Users.
  • Import WordPress Posts and Pages.
  • Import WordPress Categories and Tags.
  • Import WordPress Attachments.
  • Permissions to control what can be imported.
  • Import Custom Fields (Requires Pro)
  • Import to Custom Post Types (Requires Pro)
  • Import to custom Taxonomies (Requires Pro)
  • Schedule Imports (Requires Pro)

ImportWP is a base for importing files into WordPress which can be extended upon to create custom templates and parsers specific to your needs, for more details view the documentation.


  • ImportWP, New importer screen
  • ImportWP, Post template setup screen
  • ImportWP, Run import page
  • ImportWP, Import history page


  1. Upload ‘jc-importer’ to the ‘/wp-content/plugins/’ directory
  2. Activate the plugin through the ‘Plugins’ menu in WordPress
  3. A new menu item under Tools > ImportWP should appear where you can access the plugin.

For further documentation on installing and using ImportWP features can be found here.

Preguntas frecuentes

How do i create an importer

Documentation on adding an importer can be viewed here

What settings does each importer have

Documentation on using the importer settings can be found here

How to import from an XML/CSV files

A guide to importing data from an xml file can be viewed here

How do i run an importer once it is setup

A guide to running and pausing an import can be viewed here


24 de julio de 2017
This plugin is great. Easy to use and it just works! The documentation is very limited and the error messages are not all that helpful, but with trial and error you will get it to work. FYI, the date format needs to be YYYY/MM/DD HH:MM:SS for importing into the WP date field. All in all, great job on this plugin!
2 de diciembre de 2016
Very easy to use / customize with simple configuration. Perfect for connecting with external XML feed.
3 de septiembre de 2016
Raised a ticket however I was not able to get an answer from the original developer on it. Plugin is great.
3 de septiembre de 2016
Truly impressive. It works and it's complete. The GUI might not be shining, but it's exactly doing its job. Importing the users (in my case), and mapping the fields, and not to forget I can define a 'buffer' of let's say 100 records from the 10,726 users I need to import. Really good work, thank you.
Leer todas las 13 reseñas

Colaboradores y desarrolladores

Este software es de código abierto. Las siguientes personas han contribuido a este plugin.


Registro de cambios


  • ADD – Add option to move posts / pages to trash instead of forceful deletion.
  • ADD – Add iwp/custom_field_label filter to alter custom field label on importer log.
  • ADD – Add data mapper and serialization tool.
  • ADD – Add unique identifier field on permissions step for templates using user or post mapper.


  • ADD – Add iwp/register_events hook to allow extension of the event system.


  • FIX – Update custom method handler to work with xml with large amounts of whitespace.


  • FIX – Unable to create new importer due to null file settings merge.


  • FIX – Importer files are now prefixed with id-file_id-
  • FIX – Downloading remote files now return not found, or empty file errors.


  • ADD – New setting field for file rotation
  • FIX – Replace php data flushing with manual ajax fetching of importer status.
  • FIX – Make it easier to select csv fields with empty values.
  • FIX – Properly log skipped records
  • FIX – Fixed issue on windows file uploads causing File Not Found Error.
  • FIX – Allow ‘.’ in field name when using permissions.
  • FIX – Attempt to skip php output in ajax/rest response.


  • ADD – Ability to split imports into sections/chunks.
  • ADD – filter iwp/importer/chunk_size
  • ADD – iwp/importer/datasource
  • ADD – Ability to use custom methods when importing, [custom_fun(“arg1”, …)]
  • FIX – Fixed an issue with repeater sections displaying wrong data on front end.
  • FIX – Fixed double serialization on term meta and user meta when updating records.


  • ADD – Ability to filter records/rows before being imported.
  • FIX – Fixed post_status bugs
  • ADD – Ability to add multiple schedules per importer
  • ADD – Ability to import/export importers.
  • FIX – Fixed issue with cron scheduling, now uses local time
  • ADD – new filter to override the default timeout length


  • ADD – Update importer.custom_fields.process_field to return values
  • ADD – Send xml / csv headers when downloading file
  • FIX – Fix issue with duplicate nested xml tags prematurely closing record.
  • FIX – File process now checks x amount of records when processing file for importer editor.
  • FIX – Template fields are now fetched via REST, passing importer model to get_fields()


  • ADD – Ability to download debug log on import screen.
  • FIX – Enable field label uses Field label instead of key.


  • ADD – Rewrite of PHP code to use namespaces, and WordPress Rest API.
  • ADD – New User Interface, Moved plugin menu item from top level to under tools.
  • ADD – Update frontend code to use ReactJS library.
  • ADD – Debug panel on edit importer screen.
  • ADD – Importer logs to Debug panel.
  • ADD – Importer Settings base64 encoded string.
  • FIX – Remove taxonomy field from term template, now pick taxonomy at start.
  • FIX – AJAX load in field options.
  • FIX – Importer Speed increases.


  • FIX – Permissions bug
  • ADD – Uninstall method to clear database and files on plugin deletion (not deactivation).


  • DEL – Remove unused custom curl methods for downloading attachments
  • FIX – escape output data globally
  • FIX – sanitize data globally
  • FIX – Add nounce’s to all ajax requests


  • FIX – Post Deletion Vulnerability in ImportWP.
  • FIX – Add tool to reset ImportWP database.
  • FIX – Display errors when processing file fails.


  • ADD – Visual Permission editor to filter fields to be imported per insert/update
  • EDIT – Change csv column selector to show a vertical table with one record.

1.1.4 – 11/07/2019

  • ADD – Fetch files via wp_remote_get instead of curl or file_get_contents
  • ADD – Display information about custom field imports / errors
  • FIX – post_parent field for page template displays correctly
  • FIX – default value not being loaded when enabling field
  • FIX – Fetch non cached row count when selecting xml base nodes

1.1.3 – 08/04/2019

  • ADD – iwp/importer/file_uploaded action
  • ADD – set file encoding via filter iwp/importer/file_encoding
  • FIX – Change plugin support link
  • FIX – include delimiter into record size calculations

1.1.2 – 16/03/2019

  • ADD – store hash of imported attachments to compare against versions
  • ADD – Add iwp/{FIELD_TYPE}_field, iwp/{FIELD_TYPE}/{FIELD_NAME} filters
  • ADD – post date now tries to convert to correct format

1.1.1 – 22/01/2019

  • FIX – Remove whitespace before importing remote attachments.
  • FIX – Attachment Preview.
  • FIX – Preview Error when importer has been first created.

1.1.0 – 16/01/2019

  • FIX – ImportWP XMLFile reader, stop xml parsing CDATA
  • ADD – Introduce new methods to make building templates easier
  • EDIT – Re-Structure libs folder.

1.0.5 – 23/10/2018

  • ADD – unique template field, set which field is used to identify a record
  • FIX – Multiple bugs fixed.
  • ADD – new filter ‘iwp/import_mapper_permissions’ to block fields from being modified
  • ADD – new filter ‘iwp/template_unique_fields’ to override the templates unique reference field

1.0.4 – 16/10/2018

  • ADD – Add aria-label to inputs.
  • ADD – Add file index cache based on amount of rows chosen

1.0.3 – 09/10/2018

  • FIX – Reduce memory load by streaming file indices.
  • FIX – Speed up Post importer for larger files.
  • FIX – Add Processing notification when file is added/updated.
  • FIX – Remove templates fetching dropdown option values to edit importer screen only.

1.0.1 – 28/09/2018

  • FIX – multiple XML import issues
  • FIX – import display to show error total
  • FIX – Preview block to hide loading text if no value

1.0 – 29/04/2018

  • Integrated new and improved XML and CSV importers

0.7 – 04/02/2018

  • Add – tooltips ot xml base node fields, Slightly simplify XML process by hiding group base nodes.
  • Fix – Run link on importer archive screen would not start new csv import if one had completed previously.
  • Fix – Change links in about block

0.6 – 22/08/2017

  • Optimise CSV Parser


  • Add tooltips to title, slug, content and excerpt fields.
  • Add the ability to import attachments from a local folder.
  • Fix – Issue with php7.1.1 and saving of template data throwing warning for type missmatch string to array.

0.4.1 – 08/06/2017

  • Fix admin redirect when uploading new file on edit screen
  • Add filter to change template name when importer is created: jci/importer/template_name

0.4 – 20/05/2017

  • Add filter to alter field data: jci/parse_csv_field and jci/parse_xml_field
  • Add filter to alter specific field data: jci/parse_csv_field/{{field_name}} and jci/parse_xml_field/{{field_name}}
  • UI Improvements

0.3.1 – 11/04/2017

  • Change Interfaces
  • Change upgrade notices

0.3 – 26/03/2017

  • Rename plugin to ImportWP
  • Fix Broken unit tests, make it work with WP 4.7.3
  • Simplify Creation Process


  • fix wrong user version importer tag when adding
  • allow addition of user meta values (add/edit)


  • Improve create importer screen.
  • fix misspelled version variable causing warnings


  • Fix get_groups() issue in mapper


  • Update XML node selector modal window


  • set default options to field dropdown list
  • skip empty attachments, and taxonomies
  • move preview record box next to fields


  • Disable attachment check when switching importer file from list due to empty results
  • Add XMLReader library for creating xml node and element selectors


  • Switch saving importer files as attachments to custom post type, stopping filling media library with files
  • Clear current import status on new file upload globally


  • Add file session storage for CSV import
  • Save session between imports to keep track of file pointer position
  • Allow multiple records to be imported per ajax request


  • Improved import speed
  • Fixed attachment import error message
  • Added importer permissions to add screen


  • Allow page authors to use username, or ID
  • Fix post author and post name
  • Add Tax Template and Mapper


  • JC Importer