Hey #WordPress pals: If you were designing the WXR¹ format today, what would you do differently? What do you think is missing from the current spec?

Since it's no longer 2004, would you do the whole thing in JSON instead? Would you package images in with the post content like TextBundle?

I want to hear some big ideas. Go nuts!

¹ The WordPress import/export file, based on RSS.

Shout out to Brian Henry for pointing me at Gary Pendergast’s four post series mulling over the #WordPress importer:

https://pento.net/2021/01/18/wordpress-importers-stating-the-problem/

WordPress Importers: Stating the Problem – Gary Pendergast

@boogah I know @rmccue put a lot of time into importer rebuilding in years past. He's one of the voices I'd make sure was in the discussion if he's not completely burnt out on importer shenanigans.

@daljo628 @boogah See also https://make.wordpress.org/core/2015/11/18/wordpress-importer-redux/ and https://github.com/humanmade/WordPress-Importer

I'm not really burnt out on the importer, but there wasn't enough community interest in collaborating on it, so I shelved working on it.

WordPress Importer Redux

Hi, I’m Ryan McCue. You may remember me from such projects as the REST API. I’m here today to talk about something a bit different: the WordPress Importer. The WordPress Importer is key…

Make WordPress Core

@daljo628 @boogah That repo I would still highly recommend from an architecture standpoint; provided the bugs got ironed out, it's mostly there already in terms of a better starting point.

As to changing/extending the format, stick to XML, but I'd add in additional bits helpful for data portability; namely, plugin data (so the importer knows what's defined and can detect compatibility issues) and long-lived IDs (i.e. using UUIDs for deduplication) - on the latter, see https://github.com/rmccue/realguids which we actually use in production and have had zero issues with.

GitHub - rmccue/realguids: Use real UUIDs for the GUIDs on your WordPress site.

Use real UUIDs for the GUIDs on your WordPress site. - GitHub - rmccue/realguids: Use real UUIDs for the GUIDs on your WordPress site.

GitHub