Hi all,

I think we would all like to see more WordPress sites move to Drupal. This is the main module to do that! Additionally the main README.md is updated as some core bugs got resolved.

Mar 2026 status: Post alpha8; To shorten up the time to beta finally. I think also, we can release another alpha when major problems such as the major text formats problem is put in.

Ideally:


Nov 2024 status: Regarding alpha7 release, I believe we should drop Drupal 9 coverage and even Drupal 10.0.x, 10.1.x, on the later alpha8 release, which will make juggling all these APIs a lot easier for everyone. So alpha7 would be the last release with those versions. (My impression is 10.2.x is a reasonable cutoff for now, we don't seem to have 10.3.x+ APIs quite being imposed on us here.)
(this is done as of March 2026 dev branch)

With Drupal CMS (Project Starshot) release coming fairly soon in 2025, and some pretty big issues in the WordPress community I think many of us see this is a great time to bring portability to people's websites and offer them a switch to Drupal.

Note: The #migrate channel on Drupal slack is the most appropriate public 'home' for discussion re this module Also, for contributors and doc writers, posting on plan here helps. Particularly re version releases and if we should fundamentally rewrite other parts, and key issues, is great to post here.


Here are the big issues currently on the queue:

Major issues

Migrate configuration, XML parsing, source, process, destination, and import error messages

Also note some people have had more luck by cleaning the XML before attempting import (that is WordPress leaves fixable flaws in its exports)

Fixed or closed: #2849663: Exceptions + error catching; does not catch missing file uri, or other duplicate migration plugins gracefully, #3123393: Users are duplicated (Integrity constraint violation) Duplicate entry, #2904545: Import permalink as URL paths, #2847156: review page: Migration_tags fatal error Call to a member function get() on boolean, #2764997: Call to a member function label() on boolean, #2742301: Preprocess the WordPress XML file, #2742269: Implement file/attachment migration for Drupal 8, #2839482: Wordpress Migration UI dies with a ConnectionNotDefinedException when import starts Docs: #3487624: Create a comprehensive documentation page for WordPress Developers new to Drupal Migrate deriver / plugin / config generator issue: #3390754: Undefined array key "migration" in findMigrationDependencies()

Attachments / files / stream wrappers

Feature requests

PHP file limits

#2742295: Support importing directly from the Drupal private file directory

Comments

Comments still seem glitchy? Or import seems to hang.

Closed: #2742311: Comment migration does not work

drush 12+

CI + Other

Anything else people would like to see? Patches would be most appreciated! CI testing patches welcome.

Test XML files for practice

Additional resources

migrate devel for debugging import processes
Debugging migrations
How to debug drupal migrations by dinarcon

Old note: Last night I tagged alpha1 with the hopes we can go farther with this thing. My understanding is that file attachments were held back a while because of core issues that are now resolved.

Comments

HongPong created an issue. See original summary.

hongpong’s picture

Issue summary: View changes
hongpong’s picture

Issue summary: View changes
finn lewis’s picture

Hey HongPong,
How's this all going? I'm interested in easy automated migrations from Wordpress to Drupal, so I'll take it for a spin, but it seems like not much has happened in the last 2 years. Is that a good sign or a bad sign?
Cheers,
Finn

hongpong’s picture

Hi Finn,

Thanks for checking in. The tricky thing about this module is that there is a very large possible variation in input from people's blog data. The most problematic issue is the one that seems to mangle tags: #2974024: Taxonomy fail: imports random strings as tags.

If you have the ability to thoroughly test patches and confirm that they work as expected that would be a huge boost for the project. On my end I'm finally come out of the daze of a very long project, so in any case I can help commit patches that are tested. Also the Migrate API has continued to evolve a bit and we need to really make sure that we haven't missed any relevant changes there.

With known limitations this module is functional, and can certainly be improved. That is how I would summarize the situation right now.

finn lewis’s picture

Thanks for the update, I'll see if I can find a real test case and let you know what I find.

hongpong’s picture

Issue summary: View changes

  • HongPong committed 92b9172 on 8.x-3.x
    Issue #2904990 by HongPong: Fix module name displayed on info yml for...
hongpong’s picture

Issue summary: View changes

The new alpha4 version is released and first stage of media importation works - also the wizard itself should be signifcantly more reliable and it is Drupal 9 compatible.

https://www.drupal.org/project/wordpress_migrate/releases/8.x-3.0-alpha4

I have set a repo with a number of XML files that can be used to test the imports and links to some other XML files in the readme.

https://gitlab.com/HongPong/wordpress-test-imports

hongpong’s picture

Issue summary: View changes
Issue tags: -, -, -

revised this for Nov 2024

hongpong’s picture

Issue summary: View changes
hongpong’s picture

Issue summary: View changes
hongpong’s picture

Issue summary: View changes
hongpong’s picture

Issue summary: View changes
hongpong’s picture

Issue summary: View changes
hongpong’s picture

I attached a bunch more XML files to the test repo. https://gitlab.com/HongPong/wordpress-test-imports

includes a11y, Japanese, Gutenberg, and some very light Yoast SEO content.

hongpong’s picture

Assigned: Unassigned » hongpong
Priority: Normal » Major
Issue summary: View changes

updated with latest issues

ressa’s picture

Thanks for you epic effort with the module @hongpong, it's very much appreciated.

I agree with your priorities about version support. It makes little sense to me, to use energy on maintaining a lot of backwards compatibility for this module, since in the vast majority of use cases, the user will start fresh, and not have to import WordPress site into an old Drupal version. Or if they are on an older version, then they should simply update to the latest release, to Drupal 10.3 or Drupal 11.0, and then proceed.

Only supporting Drupal 10.2, Drupal 10.3 and Drupal 11.0 would be perfectly fine, in my opinion. If a project needs support for older Drupal versions, they should of course feel free to sponsor you, to make it happen.

Anything that makes getting to the stable release eventually of version 3 should take top priority, as you write -- this module may get a lot more users soon :)

hongpong’s picture

Issue summary: View changes
hongpong’s picture

thanks everyone for collaborating on this thing and particularly ressa for revamping the documentation entirely. it was a huge volunteer effort. if nobody has any errors to flag i should tag the alpha7 release today or tomorrow . I have a decent release note already drafted. Excellent work everyone and thank you!!!

ressa’s picture

Fantastic @hongpong, thanks!

hongpong’s picture

Issue summary: View changes
hongpong’s picture

Issue summary: View changes
hongpong’s picture

wordpress_migrate Alpha7 is released, thank you everyone! Release note: https://www.drupal.org/project/wordpress_migrate/releases/8.x-3.0-alpha7

ressa’s picture

Outstanding, congratulations and thanks @hongpong!

hongpong’s picture

Issue summary: View changes
hongpong’s picture

Issue summary: View changes
hongpong’s picture

Issue summary: View changes
hongpong’s picture

Issue summary: View changes
hongpong’s picture

Issue summary: View changes
hongpong’s picture

Issue summary: View changes
hongpong’s picture

Issue summary: View changes
ressa’s picture

Issue summary: View changes

Thank you for the 8.x-3.0-alpha9 release yesterday, getting closer to Beta :)

ressa’s picture

Issue summary: View changes

Fix end tags.

ressa’s picture

Issue summary: View changes

I found a challenge, which I think many migrations will run into, that image captions and alignment are not imported, and raw mark-up is imported directly into the Body field, #3302411: Caption text and alignment are not imported for images.

I placed it at the top of the list, since many migrations needs this to work, but feel of course free to move it to another section :)