Eizport gives Tools Export a new screen, built like WordPress’s newest admin screens, and extends the WordPress Importer. Prefer WordPress’s Export screen untouched? One setting moves the new one to its own Tools item; another brings back the classic Export screen with the same choices added.
The Export screen
Built with DataViews and DataForm, it runs on the plugin’s abilities:
On Tools Import WordPress
On the classic Tools Export
Bundle options
<site name>.WordPress.<date>.post_content/<slug>.html file instead of inside the WXR — easy to read, edit and keep under version control.options.json. When the homepage or the posts page is exported, they can be set as such on import. IDs in the settings (homepage, logo, menus…) are mapped to the imported items. Site URLs, the admin email, keys, active plugins, roles and transients are never exported.blueprint.json, the plain WXR (.xml), the media and content files (as checked above) and the themes and plugins you check that aren’t in the WordPress.org directory (a child theme brings its parent; the directory’s are installed from there, in the version this site has). Playground installs them, activates the theme and imports the content. After the download, the screen shows the command that runs it (npx @wp-playground/cli@latest server --blueprint=./<file>.zip).Settings, from the plugin’s row in Plugins (built with DataViews and DataForm)
On the WordPress Importer
Upload a .wxrz (or .zip) bundle like any WXR file. Its attachment files are taken from the bundle, so nothing is downloaded from the old site, which doesn’t even need to be online. Attachments, image sizes and featured images are created by the importer as usual. Content files are put back into the WXR before the import starts. Gzipped WXR files (.xml.gz) are accepted too.
The .wxrz format
A .wxrz file is a gzipped tar archive:
manifest.json — format version, the WXR file name and which attachment URL each media file belongs to;uploads/… — the attachment files, in the same folders as on the exporting site;post_content/<slug>.html — post contents, when exported as files;options.json — settings, set when the import ends.You can open it with any tool that reads .tar.gz files. With Settings Export “Bundle as .zip”, bundles are plain .zip files with the same entries, which any computer opens.
Abilities
The same export and import, for AI agents and scripts, through the WordPress Abilities API (/wp-json/wp-abilities/v1/abilities/<name>/run, and as tools with the MCP adapter):
eizport/get-export-options — what can be exported: content types with their terms, statuses and counts, settings groups, themes and plugins, the homepage and posts page.eizport/get-items — a page of one type’s items (search, sort, the same filters as the export), to pick what to export.eizport/get-options — the site’s options one by one (search, group, pages), with their size and whether they hold post IDs; options never exported are left out.eizport/export — exports to a temporary copy (a .wxrz or .zip bundle, WordPress’s plain .xml with bundle: false, or a Playground .zip with blueprint) and returns its link: types (post type => ids or filters), media, media_used, post_content, zip, options (groups, names, front_pages, linked, or all), blueprint (themes, plugins), filename.eizport/get-export-defaults, eizport/save-export-defaults and eizport/clear-export-defaults — the choices saved as default (the site’s need manage_options).eizport/get-copies — the copies kept, with their links and expiry.eizport/delete-copies — deletes copies by names, or all.eizport/import — imports a copy kept on this site, or an attachment_id of a .wxrz, .zip or .xml file, with media and settings.eizport/get-settings and eizport/update-settings — the plugin’s settings (see Settings above); manage_options.They follow the same rules as the screens: the export capability for exporting and copies, import for importing. Only one export runs per request.
For developers
eizport_post_content — filter the content an imported item gets from a bundle ($content, $item with original id, type and slug, $dir).eizport_wxrz_max_bytes — the largest size a .wxrz may expand to when imported (default 512 MB).eizport_playground_blueprint — filter the blueprint of a Playground .zip ($blueprint, $wxr_name).eizport_linked_options — options that point to a post, with its role: option => array( 'label' => 'Shop page', 'with' => array( … ), 'when' => array( option => value ) ). They get the imported post’s ID on import, show on the items, and come with them.eizport_option_groups — the groups of options offered (key => array( 'label' => 'Name: what it holds', 'options' => array( … ) )).eizport_denied_options — more options never exported (a plugin’s keys, tokens or version numbers); WordPress’s own can’t be removed.eizport_media_used — attachments a post uses beyond its content ($used, $post), like a product gallery.eizport_register_compat — action, after all plugins load, where compatibilities hook those filters. The WooCommerce one ships with the plugin (includes/compat/woocommerce.php: pages, a group, version options, product galleries); a plugin can replace it with its own: remove_action( 'eizport_register_compat', 'Eizport\Compat\WooCommerce\register' );.eizport_post_id_options — options that hold a post ID (by default the linked options), mapped to the imported post on import.eizport_selection_limit — how many items each “By selection” list shows (default 1000, the latest).eizport_copy_lifetime — how long a Playground copy lasts, in seconds (default: the one chosen in the settings; 0 keeps copies until deleted).wp eizport import <file> — WP-CLI command that imports a .wxrz (or .xml.gz, or .xml) with the WordPress Importer, attachments included.Eizport doesn’t run a service of its own and sends nothing to its authors. A few features rely on WordPress.org services, as WordPress itself does, or on links you choose to open:
$schema address in blueprint.json is only a reference for editors; nothing is requested from it. Same privacy policy.