Export and import individual WordPress posts (with meta, terms, and revisions).
See readme.txt for WordPress.org metadata and screenshots.
- Export a single post to JSON from the Posts/Pages list table.
- Import a JSON export from Tools → Post Import.
- Works with all public post types.
- Preserves custom fields, taxonomy terms, and revision history.
- Normalizes UTF-8 content to avoid double-encoding.
- WordPress 5.8+
- PHP 7.4+
- Export requires the
exportcapability. - Import requires the
edit_postscapability.
- Upload the plugin to
/wp-content/plugins/nr-post-exporteror install via the Plugins screen. - Activate the plugin.
- Go to Posts → All Posts (or Pages).
- Hover a row and click Export.
Step 2: Click Export from the row actions for the post you want to transfer.
- Save the JSON file locally.
Step 3: Save the downloaded JSON file so it can be imported on another site.
- Go to Tools → Post Import.
- Choose a previously exported JSON file.
- Click Import Post.
Import screen: upload the exported JSON and run the import.
- Post fields (title, content, status, dates, slug, etc.).
- Post meta (custom fields).
- Taxonomy terms (by slug).
- Revisions (when present).
- The current user becomes the author on import.
- Imported titles are prefixed with
Imported:. - Terms are created by slug if they do not exist.
- The upload size limit is ~1MB.
- Media files are not transferred; attachment references remain in content/meta.
- Install tooling:
composer install - Linting:
composer run lintandcomposer run lint:fix - Build zip:
bash bin/build-zip.sh - Test environment: see
test/README.md