plugin-icon

WolkTools Dry Run Importer

لصاحبه wolktools·
Dry-run WXR imports, preview diffs, update selected fields, restore post-level backups, and export filtered WXR files.
النسخة
1.0.0
آخر تحديث
Jun 26, 2026
WolkTools Dry Run Importer

Dry Run Importer is a safe-loop companion for working with WXR (WordPress eXtended RSS) files — built for the workflow of importing and updating WordPress content repeatedly and safely, including content you edited with the help of AI.

Unlike the standard WordPress importer or WP All Import, this tool supports the development and content-migration process itself. It lets you overwrite and merge content into an existing WordPress site safely, with a strong safety model that avoids silently breaking the site.

Dual tool: Web Checker + WP Plugin

The project ships as two complementary tools: a WP Plugin you install inside WordPress, and a Web Checker (wp-import-checker.html) that runs fully offline in your browser. * Web Checker (XML test & CSV check): Before you import anything into WordPress, test the integrity of a WXR XML file and compare it against a source CSV (key-column mapping). It parses and validates even tens of thousands of XML rows quickly in your local browser. * WP Plugin (this plugin): Built on the same validation logic as the Web Checker, it applies data to a real site from inside the WordPress admin with strong safety: Dry Run (validation), diff preview, staged Chunk Import, automatic per-post backups before import, restore, and concurrent-import lock control.

Key features

  • Dry Run (pre-flight) with a 3-color verdict (Green, Yellow, Red): Before writing any data, it thoroughly inspects XML structure, BOM, duplicate posts, missing taxonomies and parent/child hierarchy links, and the state of custom fields (ACF, etc.).
  • Visual diff preview: Clearly visualizes the difference between an existing post and the incoming data per post-core field, meta, and taxonomy, so you can check off and overwrite-merge only the items you want to update.
  • Per-post backup and safe Restore: Each post that will be updated is automatically backed up individually, capturing its state just before import. If the result is not what you intended, you can restore it to its pre-import state with one click from the admin screen. Before restoring, a “restore impact preview” is shown and the action proceeds only after explicit consent (a confirmation checkbox).
  • Staged import (Chunk Import): Even large WXR files are split into chunks and processed sequentially without causing timeouts. If an error occurs partway through, you can safely resume from the point of failure.
  • Concurrent-import control (GET_LOCK): Uses MySQL GET_LOCK for a robust lock so multiple operators — or an AI script and a manual operation — do not import at the same time and collide.
  • utf8mb4 / emoji safe: 4-byte UTF-8 strings, emoji, and surrogate pairs are verified to import and export intact, without mojibake or data loss.
  • Images don’t break (media relink & migration guard): Images you uploaded to the Media Library first are matched against the WXR attachments by filename (plus dimensions) and reused, remapping featured images, ACF image fields, and in-content references to your existing media (no empty duplicates). When migrating from another site and the library is missing an image, a safety gate stops the import and prompts you to “add the images first.”
  • Dry Run Exporter (safe export): An advanced export feature is also integrated, with detailed filtering by post type, date, status, author, taxonomy and meta custom queries, personal-data (PII) warnings, and automatic collection of related media.

Use cases

  1. Pushing a WXR diff from staging to production While production keeps running, safely push only the diff data — new posts or custom fields built on staging — into production, validating up front that no collisions occur before merging.
  2. Staged content migration during a site renewal When migrating thousands of old posts and images, prevent timeouts and silent data drop, and migrate progressively while preserving untouched content and media parent/child relationships.
  3. Selective restore of specific content from a backup WXR Without rolling the whole site back to an old snapshot, pick only specific broken posts, pages, or taxonomies from a WXR file and import/restore them individually.
  4. Agencies safely updating a client environment from WXR before delivery Without taking custody of the client’s WordPress site, output content (WXR) created in a local or test environment for delivery, visually prove that no collision or overwrite occurs against existing data, and then apply it.
  5. Temporary state preservation and rollback before theme or plugin changes Before a large theme change or page-builder migration, export just the affected content once; if a problem appears after applying, roll back individual posts from their per-post backups immediately to the original clean state.

Important Limitations

Please review the following limitations. The plugin takes an automatic per-post backup before import, but for first-time use on production we still recommend taking a full external database backup as a precaution.

  • Author merge: When author mapping information exists in the WXR, authors are safely linked to existing WordPress users (no silent drop as with the standard importer). However, the feature that auto-creates new users defined in the WXR is currently disabled.
  • Comment restoration: Comments and trackbacks associated with a post are safely restored, but for very large volumes (tens of thousands of comments) adjust your memory settings beforehand.
  • Unregistered custom post types/taxonomies: The source custom post types and taxonomies must already be registered (by a plugin or theme) and active on the destination site.
  • Multisite: Operation on WordPress Multisite has not yet been fully verified.
  • Restore scope: The plugin’s Restore feature returns the target post’s core fields, meta, and taxonomies to their original state. Newly downloaded attachment (image) files themselves are not auto-deleted, to avoid bloating the Media Library. Also note that running a restore replaces ALL postmeta of the target post with the values from the backup. If other plugins added metadata after the backup was taken, that metadata will be removed, so please be careful.
  • Object cache / search index: Because the plugin writes raw meta via direct unserialize (hardened with the secure allowed_classes => false), some dynamic meta-add hooks may be bypassed. If you use an external persistent object cache (Redis/Memcached) or a search index such as Elasticsearch, run a cache clear or reindex once after import completes (the wpsi_after_raw_meta_update action hook is provided for integrators).
  • Image IDs inside Gutenberg blocks: Remapping attachment IDs inside core media blocks (image, gallery, etc.) is supported, but ID remapping inside the complex proprietary JSON of third-party page builders (Elementor, etc.) may be limited.
  • Huge WXR over 100MB: WXR files larger than 100MB are not guaranteed to work. Because parsing uses the browser’s DOMParser, split the file beforehand to avoid freezing the browser tab or exhausting memory.

Supported Browsers

The Dry Run Importer admin UI is optimized for the latest two versions of Chrome, Edge, Firefox, and Safari. Older browsers such as Internet Explorer are not supported.

مجانيعلى الخطط المدفوعة
إذا أتممت بالتثبيت، فإنك توافق على شروط خدمة ووردبريس.كوم ووشروط إضافات الأطراف الثالثة.
تم اختباره حتى
WordPress 7.0
تتوفّر هذه الإضافة للتنزيل لتُستخدم في عملية التثبيت لديك.