Plugin Directory

Test out the new Plugin Directory and let us know what you think.
!This plugin hasn’t been updated in over 2 years. It may no longer be maintained or supported and may have compatibility issues when used with more recent versions of WordPress.

CSV Importer

Import posts from CSV files into WordPress.

I have quotation marks and commas as values in my CSV file. How do I tell CSV Importer to use a different separator?

It doesn't really matter what kind of separator you use if your file is properly escaped. To see what I mean by proper escaping, take a look at


file which has cells with quotation marks and commas.

If the software you use for exporting to CSV is unable to escape quotation marks and commas, you might want to give OpenOffice Calc a try.

How can I import characters with diacritics, Cyrillic or Han characters?

Make sure to save your CSV file with utf-8 encoding.

Prior to version 6.0.4, MySQL did not support some rare Han characters. As a workaround, you can insert characters such as 𠊎 (U+2028E) by converting them to HTML entities - 𠊎

I cannot import anything - the plugin displays "Imported 0 posts in 0.01 seconds."

Update to version 0.3.1 or greater. Previous versions required write access to the /tmp directory and the plugin failed if access was denied by PHP's safe mode or other settings.

I'm importing a file, but not all rows in it are imported and I don't see a confirmation message. Why?

WordPress can be many things, but one thing it's not is blazing fast. The reason why not all rows are imported and there's no confirmation message is that the plugin times out during execution - PHP decides that it has been running too long and terminates it.

There are a number of solutions you can try. First, make sure that you're not using any plugins that may slow down post insertion. For example, a Twitter plugin might attempt to tweet every post you import - not a very good idea if you have 200 posts. Second, you can break up a file into smaller chunks that take less time to import and therefore will not cause the plugin to time out. Third, you can try adjusting PHP's max_execution_time option that sets how long scripts are allowed to run. Description of how to do it is beyond the scope of this FAQ - you should search the web and/or use your web host's help to find out how. However, putting the following line in .htaccess file inside public_html directory works for some people:

# Sets max execution time to 2 minutes. Adjust as necessary.
php_value max_execution_time 120

The problem can be approached from another angle, namely instead of giving scripts more time to run making them run faster. There's not much I can do to speed up the plugin (you can contact me at dvkobozev at gmail.com if you like to prove me wrong), so you can try to speed up WordPress. It is a pretty broad topic, ranging from database optimizations to PHP accelerators such as APC, eAccelerator or XCache, so I'm afraid you're on your own here.

I receive the following error when I try to import my CSV file: "Invalid CSV file: header length and/or row lengths do not match". What's wrong with your plugin/my file?

Short answer: update to version 0.2.0 or later. Longer answer: the number of fields (values) in rows in your file does not match the number of columns. Version 0.2.0 pads such rows with empty values (if there are more columns than cells in a row) or discards extra fields (if there are less columns than cells in a row).

I'm getting the following error: Parse error: syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in .../public_html/wp-content/plugins/csv-importer/File_CSV_DataSource/DataSource.php on line 61. What gives?

This plugin requires PHP5, while you probably have PHP4 or older. Update your PHP installation or ask your hosting provider to do it for you.

Requires: 2.0.2 or higher
Compatible up to: 3.8.18
Last Updated: 2 years ago
Active Installs: 30,000+


4.1 out of 5 stars


Got something to say? Need help?


Not enough data

0 people say it works.
0 people say it's broken.

0,1,0 0,1,0
50,2,1 100,1,1
100,1,1 100,1,1 100,3,3 0,1,0
100,3,3 71,7,5
100,1,1 60,10,6 100,1,1 100,1,1
0,1,0 100,11,11
100,1,1 100,1,1
100,3,3 100,1,1 100,7,7
57,14,8 100,4,4