Migrate WordPress to Drupal

In this article, I will share the migration work. I have used Drupal in the past and managed to install it without any issues.

Here is the plan of work:

  • identify the contents need to be migrated
  • export all contents from the current site (source)
  • install and configure Drupal (target)
  • prepare target site by installing and enabling following modules
    • ctools
    • migrate
    • migrate plus
    • wordpress migrate
  • field mapping
    • create a spreadsheet, listing out all the fields from the source
    • manually map out the fields
    • create content type (target)
    • create Categories taxonomy
  • data manipulation
    • check exported file and change site URL accordingly
    • hard code internal links
    • file migrations – /wp-contents -> /site/default/files
  • execute migration
  • test
drupal modules for migration
blog post content
Result after migration
broadoakdata.uk contents migrated to a drupla site

Following modules were installed:

  • https://ftp.drupal.org/files/projects/ctools-4.0.4.tar.gz
  • https://ftp.drupal.org/files/projects/migrate_plus-6.0.1.tar.gz
  • https://ftp.drupal.org/files/projects/wordpress_migrate-8.x-3.0-alpha6.tar.gz
  • https://ftp.drupal.org/files/projects/migrate_tools-6.0.2.tar.gz

Taking precautions against denial of service attack

  • Update .htaccess file at root folder with the following directives:
<Files "xmlrpc.php">
  Require all denied
</Files>
# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress
  • Change WP admin login with the plugin Rename wp-login.php .