WordPress currently supports importing data in the form of posts (articles) and most of the details or features supported by the existing software, from the following content publishing platforms.

Most of the following WordPress-supported import scripts can be found under the "Import" tab of your Wordpress administration interface.

If you run into specific problems, a search on the WordPress Support Forum will likely lead to a solution or try the Codex FAQ. Users of a blogging system not listed here who wish to switch to WordPress are invited to ask for help in the WordPress Support Forum as well.

To help you understand the differences between WordPress and other existing software, we recommend you review the WordPress Features and more on Working with WordPress.

b2 编辑

The script for importing b2 posts into your WordPress blog is located on your site in the wordpress/wp-admin/import-b2.php.

(Note: In 2.0.2, this is no longer true. There is a b2.php file under wordpress/wp-admin/import, however, it is empty.)

At Wild Mind, you can find a short b2 to WP tutorial. 6836489534644555328836

b2evolution 编辑

A non-WordPress script for for importing from b2evo to WordPress is available.

1) Install WordPress
2) Download file, remove .txt extension, and upload to your wp-admin directory
3) Run the script and input your b2evo database name and password
Forum topic with discussion & updates

Blogger 编辑

The script for importing Blogger posts into your WordPress blog is located at wp-admin/import-blogger.php.

The following are resources to help make the transition from Blogger to WordPress:

Note that if you accidentally exported to a subdirectory, you will not need to do the process all over -- just move the *wordpress.php files to your WordPress root or just change import-blogger.php where it says:

 $archivefile = "../$bgy"."_"."$bgmm"."_01_wordpress.php";

... to instead read:

 $archivefile = "../archives/$bgy"."_"."$bgmm"."_01_wordpress.php";

Except change 'archives' to the name of subdirectory you exported/ftp'd the blogger site to.

Known Issues:

Users of WordPress 1.5 will experience a database error when the script attempts to add users to the database. This bug is fixed in 1.5.1. The hotfix (to be applied before running the import script) is to open upgrade-functions.php and replace the line:

 $wpdb->query("UPDATE $wpdb->users SET user_registered = DATE_ADD(dateYMDhour, INTERVAL '$add_hours:$add_minutes' HOUR_MINUTE)");

... to instead read:

 $wpdb->query("UPDATE $wpdb->users SET user_registered = DATE_ADD(user_registered, INTERVAL '$add_hours:$add_minutes' HOUR_MINUTE)");

Blogware 编辑

Blosxom 编辑

Drupal 编辑

Greymatter 编辑

The script for importing Greymatter posts into your WordPress blog is located at wp-admin/import-greymatter.php.

The script is fairly old. It was originally written to import from Greymatter to b2. There have been cases where the import script does not work with WordPress 1.5. In these cases, you can try this workaround:

  • Install WordPress 1.2
  • Import from Greymatter
  • Then upgrade to WordPress latest version

You can also read the forum thread at for other workarounds. 编辑

There's a script that allows to import entries and comments from - Polish, Jabber-powered weblog system. Comments and manual are in Polish (since Jogger is mostly polish), but if you have any questions, feel free to ask in comments on author's blog.


LiveJournal 编辑

The script for importing LiveJournal posts into your WordPress blog is located at wp-admin/import-livejournal.php.

Instructions for exporting LiveJournal entries can be found at LiveJournal export instructions. This tools seems to require exporting your journal one month at a time. However. the import tool will happily accept all the entries in a single file, so you may save them all in the same file. You may also have to do a "View Source" on the page that the Livejournal export tool returns, in order to see the XML source. You can then copy and paste this into a file to import.

Mambo 编辑

Motime - Splinder编辑

These are brands of the blog hosting provider Tipic Inc. Using a python script named Spleender, you can import the posts (not the comments), see an English case study or the full documentation in Italian

Pivot 编辑

There is a script: Importing posts from Pivot 1.2 with *Linux* server to WordPress

There is another script, which has been updated to work with WordPress 2.0: Pivot importer for WordPress. It tries to preserve users and categories.

However, Pivot also has an excellent RSS support and that WordPress can import RSS. Example.

Movable Type 编辑

The script for importing Movable Type posts into your WordPress blog is located on your site in the wordpress/wp-admin/import-mt.php.

Nucleus CMS 编辑

Radio Userland 编辑

Roller 编辑

You can fairly easily import data from Roller using the MovableType import script. First, you need to export your blog from Roller database, then use it to create entries in your new blog. Pictures you need to copy to appropriate content directory yourself. Modify the $user, $oldresources, $newresources, and $connection variables in a beginning of script, store it on somewhere on you web host where php execution is allowed, and you will get the dump of your Roller blog in MovableType Import format in return. You can just use wget to store it into file. Then follow the instructions for MovableType import...

<title>Roller export</title>
// assumes that Roller is running on postgresql
// it also assumes that there is only one blog for user
// the character set used by Roller is utf8, but this seems to suit at least
// WordPress just fine, so no conversions done
// just modify the script, store it somewhere where php execution is allowed
// and wget the url
// provided by Madis Kaal <>
$user = "bloguser";
// in entry body, all occurrencies of $oldresources are 
// replaced with $newresources
$oldresources = "/resources/bloguser/";
$newresources = "http://somesite/wp-content/";
// define your database connection here
// dbname is name of database
// usually, it is on localhost
// password is for accessing the db
// and user is username for it
$connection = pg_connect("dbname=dbname host=localhost password=dbpassword user=dbuser");

// -- this is it, no changes should be needed below -------------------------------
// get ID for user
$result = pg_Exec($connection, "select id from rolleruser where username='".$user."'");
// get ID for site
$result = pg_Exec($connection,"select id from website where userid='".$uid."'");
// get all entries for this site
$entries= pg_Exec($connection,"select id,title,text,pubtime,categoryid,allowcomments,publishentry from weblogentry where websiteid='".$siteid."' order by pubtime");
// dump all entries
echo "--------\n";
for($i=0; $i<(pg_numrows($entries)); $i++)
  // turn the category ID into category name, I know SQL-heads would just
  // do it in query, but I'm a complete C-head
  $resultRow = pg_fetch_array($entries, $i);
  $cat=pg_result(pg_Exec($connection,"select name from weblogcategory where id='".$c."'"),0,0);
  // dump metadata first  
  echo "PRIMARY CATEGORY: ".$cat."\n";
  echo "AUTHOR: ".$user."\n";
  echo "TITLE: ".$resultRow["title"]."\n";
  // convert YYYY-MM-DD to MM/DD/YYYY hh:mm:ss
  echo "DATE: ".substr($c,5,2)."/".substr($c,8,2)."/".substr($c,0,4).substr($c,10,9)."\n";
  if ($c=="t") { $c="1"; } else { $c="0"; };
  echo "STATUS: ".$c."\n";
  if ($c=="t") { $c="1"; } else { $c="0"; };
  echo "ALLOW COMMENTS: ".$c."\n";
  echo "-----\n";
  // done with metadata, multiline entries follow 
  echo "BODY:\n";
  echo $c."\n";
  // find comments for the entry
  $comments=pg_Exec("select name,email,url,posttime,remotehost,content from comment where entryid='".$resultRow["id"]."'");
  for ($j=0; $j<(pg_numrows($comments)); $j++)
    // discard all comments containing url. this gets rid of spam, and also
    // some legimate comments as well
    if (strpos($c["content"],"http://")===false)
      echo "-----\n";
      echo "COMMENT:\n";
      echo "AUTHOR: ".$c["name"]."\n";
      echo "EMAIL: ".$c["email"]."\n";
      echo "URL: ".$c["url"]."\n";
      echo "IP: ".$c["remotehost"]."\n";
      echo "DATE: ".substr($d,5,2)."/".substr($d,8,2)."/".substr($d,0,4).substr($d,10,9)."\n";
      echo $c["content"]."\n";
  echo "--------\n";    

Textpattern 编辑

The script for importing Textpattern posts into your WordPress blog is located at wp-admin/import-textpattern.php. Another script may be found on the WordPress Forum on this forum thread.

TypePad 编辑

The Importing from Movable Type to WordPress works for TypePad blogs, too. The only difference is in the process of exporting entries from the TypePad blog. Contact TypePad support for instructions on exporting entries from TypePad. Once you have the exported entries, follow the instructions in Importing from Movable Type to WordPress to complete the import into WordPress. 编辑

Importing from an RSS feed 编辑

2.0 introduced this as an option in the Admin menu under "Import".

First, save the RSS feed you wish to import someplace on your local machine. This would be the source and would come from the site that has the content you wish to import into your WP blog. A simple way to get the feed into a text file is to find the RSS link for that site, click it and view it in your browser, then copy/paste that to a text file. Or, of course, use your preferred tools.

Click the "Browse" button and navigate to the file containing the feed you wish to import and click "Import" to let it run.

Note: Depending on the feed and format, you may not get the entire thing loaded on the first attempt. One option is to determine how much got imported (Manage -> Posts) and remove those sections from your saved RSS file and then re-import. Lather, rinse, repeat as necessary.

Pre 2.x
WordPress also has a generic RSS importer, which you can find in your WordPress source at wp-admin/import-rss.php. If your current blogging system can export in a valid RSS format, you can import that into WordPress.

Importing the RSS data is done by running the import-rss.php script from the server. For security reasons you have to edit the script to point to the file where the RSS data is stored.

If you have your blog at, you can place your file, for example oldblog.xml, in the wp-admin directory on your site.

Edit import-rss.php by changing the value of RSSFILE in the beginning of the script. After you have changed this, run the script by accessing the script with your browser, in this case you’ll go to

If the script finds your file, a link marked Begin RSS Import occur, and by pressing this link the import will start.

The RSS data are now imported, and you can remove the RSS file and restore the script.