WP Manifestindependent plugin directory
manifest / updates / hm-content-import

HM Content Import WP Registry grade A. No security issues foundWP RegistryNo security issues foundOpen the reportA

Migration framework for WordPress, attempts to reduce overhead in migrating content from differing data sources

★ 29stars
48kcomposer installs
2.3.0latest · 1mo ago

Install

Download source zip No release zip yet

This is the repository archive. It installs, but the folder name will carry the branch suffix and updates will not flow.

Install straight from GitHub with WP-CLI:

wp plugin install https://github.com/humanmade/hm-content-import/archive/refs/heads/main.zip

On Packagist as humanmade/hm-content-import:

composer require humanmade/hm-content-import
No built-in updater. New versions won't appear under Dashboard → Updates. Install new releases yourself, or let Git Updater track the repository.

Migration framework for WordPress, attempts to reduce overhead in migrating content from differing data sources

Introduction

HMCI is an extensible, performant, scriptable, pausable, resumable, and horizontally scalable WP-CLI framework for importing large amounts of content into WordPress. It is a base framework for performing custom migrations of large amounts of content from any source and therefore requires the development of an import handler for each type of content being imported.

It typically supports both new imports and delta imports, although this is dependent on the individual import handlers written for each migration.

HMCI can be run in multiple threads in parallel, making it horizontally scalable in order to reduce the time required to process large imports. It has been used as the basis of large data migrations for Human Made clients such as The Sun, L'Express, Capgemini, and others.

Ingestion

HMCI supports ingestion of data via iterators that support:

  • Single files
    • CSV
    • JSON
  • Directories of files
    • JSON
    • XML
  • A direct MySQL database connection
  • WordPress Posts (for internal migration)

Insertion

HMCI supports inserting imported data into:

  • WordPress
    • Attachments
    • Comments
    • Guest Authors (used by Co-Authors Plus and PublishPress)
    • Posts
    • Taxonomy Terms
    • Users
  • Files
    • CSV

Importing

See the Running Imports for more information on how to import data.

Writing Importers

See the Writing Importers for more information on how to write importers.

Migrating From Version 1

In Version 2 we changed the way canonical IDs are stored. This means that you will need to migrate your existing data to the new format, if you are planning to resume / to delta imports with data that was imported under Version 1.

Run the following SQL query to migrate your existing data:

UPDATE wp_postmeta SET meta_key = CONCAT('hmci_canonical_id_', meta_value) WHERE meta_key = 'hmci_canonical_id';
UPDATE wp_usermeta SET meta_key = CONCAT('hmci_canonical_id_', meta_value) WHERE meta_key = 'hmci_canonical_id';
UPDATE wp_commentmeta SET meta_key = CONCAT('hmci_canonical_id_', meta_value) WHERE meta_key = 'hmci_canonical_id';
UPDATE wp_termmeta SET meta_key = CONCAT('hmci_canonical_id_', meta_value) WHERE meta_key = 'hmci_canonical_id';

Should you need to revert this migration, you can run the following SQL query:

UPDATE wp_postmeta SET meta_key = 'hmci_canonical_id' WHERE meta_key LIKE 'hmci_canonical_id_%';
UPDATE wp_usermeta SET meta_key = 'hmci_canonical_id' WHERE meta_key LIKE 'hmci_canonical_id_%';
UPDATE wp_commentmeta SET meta_key = 'hmci_canonical_id' WHERE meta_key LIKE 'hmci_canonical_id_%';
UPDATE wp_termmeta SET meta_key = 'hmci_canonical_id' WHERE meta_key LIKE 'hmci_canonical_id_%';

Releases

7 releases.

Tag
Published
2.3.0 latest
Sep 8, 2026 1mo ago
Jul 21, 2026 3mo ago
Oct 23, 2025 12mo ago
Aug 14, 2024 2 years ago
Jul 10, 2024 2 years ago
Jan 2, 2020 6 years ago
Mar 21, 2019 7 years ago

These releases are tags only. The author does not attach a packaged zip, so there are no download counts to report.

A grade

Security

HM Content Import 2.3.0 · audited by WP Registry

No security issues found.

Audited release
2.3.0
Findings
none
Worst severity
—
Content hash
1727c86c0504b598a53e1c48…

WP Registry hashes the installable build and reports on that exact bytes-for-bytes copy. Embargoed findings are withheld until they are disclosed, so a clean verdict means nothing public is outstanding. WP Manifest does not audit code itself.