Tinker Valley Import & Export self-updates
WordPress plugin for importing and exporting mapped post JSON files with ACF and media support.
by Tinker Valley · github.com/tinkervalley/tinker-valley-import-export
Install
The author publishes release zips, so WP-CLI can install straight from GitHub:
wp plugin install https://github.com/tinkervalley/tinker-valley-import-export/releases/download/v0.3.0/tinker-valley-import-export.zipShips its own WordPress updater (built-in updater), so new versions show up under Dashboard → Updates.
Readme
Tinker Valley Import & Export
WordPress plugin for importing and exporting mapped post JSON files with ACF field mapping.
Highlights
- Import and export posts, ACF fields, taxonomy terms, and media
- Background batch processing for larger imports
- Automatic updates from public GitHub releases
Install
Copy the tinker-valley-import-export folder into:
wp-content/plugins/
Then activate Tinker Valley Import & Export in WordPress.
The plugin page is under:
Tools > Tinker Valley Import & Export
Updates
The plugin checks the latest public GitHub release using the WordPress HTTP API. Stable releases containing the tinker-valley-import-export.zip asset appear in the normal WordPress Updates interface.
The Plugins screen includes Check for updates and Enable automatic updates links for this plugin.
Creating a Release
Update the version in both the plugin header and TVPI_VERSION, commit the change, then create and push the matching semantic version tag:
git tag v0.3.0
git push origin main
git push origin v0.3.0
The release workflow verifies that the tag matches the plugin version, packages the repository inside the required tinker-valley-import-export/ directory, creates a GitHub Release, and attaches tinker-valley-import-export.zip.
What It Imports
Each JSON record can create or update a post of the selected target post type and map:
- post title, slug, status, content, date
- old source ID stored as
_tvpi_old_post_id - featured image URL
- taxonomy terms using each category's declared
taxonomyvalue, with legacy fallback support forproject_categoryandcategory - any ACF field included in the record's
acfobject
ACF field definitions assigned to the target post are used to preserve their field types. Media URLs in any ACF image, file, or gallery field are sideloaded into the Media Library, including media fields nested inside ACF groups and repeaters. Imported media stores the original URL as _tvpi_source_url so repeat imports can reuse the same attachment. The source URL may use the same hostname as the WordPress site.
Declared taxonomy terms are assigned after ACF values so an empty ACF taxonomy field cannot clear the imported term relationships.
During import, you can also choose to reuse existing Media Library files with the same filename before downloading from the source URL.
What It Exports
The export panel lets you select a post type and download a JSON file in the same shape the importer accepts.
Exports include:
- post title, slug, status, content, date
- featured image URL
- hierarchical taxonomy terms
- actual ACF fields assigned to each post
- optional public custom meta export
Background Processing
Imports are queued as jobs and processed in small batches through WP-Cron.
The admin page also has a Process Next Batch button in case WP-Cron does not run immediately on a local/staging site.
Each job includes a collapsible post log showing which records were created or updated, including the WordPress post ID.
Notes
- If ACF is active, the plugin uses
update_field(). - If ACF is not active, it falls back to
update_post_meta(). - Existing posts are matched by
_tvpi_old_post_idwhen the update option is enabled.
Read the full README on GitHub →
Releases
| Tag | Published | Asset | Downloads |
|---|---|---|---|
| v0.3.0 | Jul 23, 2026 | tinker-valley-import-export.zip | 2 |