Upgrade Your Drupal Skills

We trained 1,000+ Drupal Developers over the last decade.

See Advanced Courses NAH, I know Enough

Migrate WordPress to Drupal

Parent Feed: 

WordPress is the most popular and most widely used CMS in the market right now. It’s very versatile and easy to use, however it isn’t perfect for all scenarios. There might be instances where Drupal would be the preferred choice for a particular solution. There might also be a case where a user would need to migrate their WordPress site to Drupal. While this process isn’t quite streamlined due to the differences in the way both CMSs work, there is a pretty simple way to get started on this and migrate the bulk of your content to Drupal. In this post, let’s take a look at how this can be achieved.

Export WordPress XML

First, we need to export the content on our WordPress site. WordPress does this via an XML file. To do so, log in to your WordPress site as an admin and navigate to tools -> export.

tools

Then select what you wish to export. Generally, you’d be selecting all content.

export

Now click “Download” export file to download the XML file.
Make sure you validated the downloaded XML file before you proceed with the next step. This can be done via any free online XML validation tool.

That wraps up the WordPress part of our migration.

Drupal Modules for Migration

With Drupal 8, the migrate module has been included into the core. While the core module can perform Drupal to Drupal migration without the need of any additional contributed modules, migrating from WordPress requires the use of additional modules:

Note that several of these modules are still in alpha phase for Drupal 8, however, I did not find any bugs in my testing.

Migrate to Drupal

Now, we can finally start with migrating content to Drupal. Navigate to admin -> structure -> migrations.

migrate

Now click on “+ Add import from WordPress”.

add import

Next, add the XML file you exported from your WordPress site earlier and click Next.

next

You will be asked whether to create new accounts for authors from WordPress posts or assign all the posts to an existing Drupal account. For simplicity’s sake, I’ll choose no, which will assign all posts to an existing account.

After this, you will be presented with an option to import WordPress tags and categories as tags in Drupal.

Now we come to the main part, content import options. Here you can choose, what content types should WordPress blog posts and pages be imported as. It’s recommended to import blog posts as articles and pages as basic pages.

After this, just keep going through the different options you are presented with as you keep clicking next.

After you are done with all the steps, click Finish and you’ll be presented with the main migration page.

migrations

Here all the different types of content are grouped separately and can be executed as you desire. Click the Execute button beside each to perform the specific migration.

execute migration

Click execute again to start the migration. When it’s done you will be automatically returned to the same page as above. Click the Migrations link at the top to return to the migrations summary page.

migrations

As you can see the group, we performed the migration on, shows the number of content pieces that have been processed, while for the comments which I did not execute yet shows unprocessed.

That’s it! You’ve successfully performed the migration of your WordPress site to Drupal.

Running into troubles migrating your site to Drupal? Feel free to contact us here at Agiledrop and we’d be happy to help! Our extensive experience with Drupal makes us the ideal choice for all your Drupal worries.
 

Original Post: 

About Drupal Sun

Drupal Sun is an Evolving Web project. It allows you to:

  • Do full-text search on all the articles in Drupal Planet (thanks to Apache Solr)
  • Facet based on tags, author, or feed
  • Flip through articles quickly (with j/k or arrow keys) to find what you're interested in
  • View the entire article text inline, or in the context of the site where it was created

See the blog post at Evolving Web

Evolving Web