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.
Then select what you wish to export. Generally, you’d be selecting all content.
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:
- WordPress Migrate (Specifically for migration from WordPress. Submodule of the Migrate module).
- Migrate Plus (Required by WordPress Migrate).
- Migrate Tools (Required by WordPress Migrate).
- CTools (Required by WordPress Migrate).
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.
Now click on “+ Add import from WordPress”.
Next, add the XML file you exported from your WordPress site earlier and click 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.
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.
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.
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.