{"id":321430,"date":"2026-07-03T10:05:59","date_gmt":"2026-07-03T10:05:59","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/multisite-cpt-cloner\/"},"modified":"2026-07-03T11:26:12","modified_gmt":"2026-07-03T11:26:12","slug":"42works-multisite-cpt-migrator","status":"publish","type":"plugin","link":"https:\/\/frp.wordpress.org\/plugins\/42works-multisite-cpt-migrator\/","author":23508718,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"0.2.0","stable_tag":"0.2.0","tested":"7.0","requires":"6.0","requires_php":"7.4","requires_plugins":null,"header_name":"42Works Multisite CPT Migrator","header_author":"42Works","header_description":"Copy a post \u2014 any CPT, with ACF values, attachments, references, and taxonomies \u2014 between WordPress Multisite subsites as a fresh draft.","assets_banners_color":"403d3c","last_updated":"2026-07-03 11:26:12","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/42works.net","header_plugin_uri":"https:\/\/42works.net","header_author_uri":"","rating":0,"author_block_rating":0,"active_installs":0,"downloads":29,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"0.2.0":{"tag":"0.2.0","author":"42works","date":"2026-07-03 11:26:12"}},"upgrade_notice":{"0.2.0":"<p>Initial public release.<\/p>"},"ratings":[],"assets_icons":[],"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3595059,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3595059,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["0.2.0"],"block_files":[],"assets_screenshots":{"screenshot-2.png":{"filename":"screenshot-2.png","revision":3595059,"resolution":"2","location":"assets","locale":"","width":1421,"height":542},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3595059,"resolution":"3","location":"assets","locale":"","width":1419,"height":575}},"screenshots":{"1":"Network Admin -&gt; Settings -&gt; MultiSite Post Cloner - checkbox list of post types eligible for cloning.","2":"The \"Copy to location\u2026\" row action on a post list.","3":"The target-subsite picker."}},"plugin_section":[],"plugin_tags":[2211,2814,1794,9055,441],"plugin_category":[51,59],"plugin_contributors":[269977],"plugin_business_model":[],"class_list":["post-321430","plugin","type-plugin","status-publish","hentry","plugin_tags-acf","plugin_tags-clone","plugin_tags-custom-post-type","plugin_tags-duplicate","plugin_tags-multisite","plugin_category-multisite","plugin_category-utilities-and-tools","plugin_contributors-42works","plugin_committers-42works"],"banners":{"banner":"https:\/\/ps.w.org\/42works-multisite-cpt-migrator\/assets\/banner-772x250.png?rev=3595059","banner_2x":"https:\/\/ps.w.org\/42works-multisite-cpt-migrator\/assets\/banner-1544x500.png?rev=3595059","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/s.w.org\/plugins\/geopattern-icon\/42works-multisite-cpt-migrator_403d3c.svg","icon_2x":false,"generated":true},"screenshots":[{"src":"https:\/\/ps.w.org\/42works-multisite-cpt-migrator\/assets\/screenshot-2.png?rev=3595059","caption":"The \"Copy to location\u2026\" row action on a post list."},{"src":"https:\/\/ps.w.org\/42works-multisite-cpt-migrator\/assets\/screenshot-3.png?rev=3595059","caption":"The target-subsite picker."}],"raw_content":"<!--section=description-->\n<p>For WordPress Multisite networks: copy a post from one subsite to another while keeping everything intact.<\/p>\n\n<p>This plugin is built for sites with rich content models \u2014 custom post types backed by Advanced Custom Fields, where each post can contain deeply nested repeater rows, image galleries, and links to other posts. The cloner walks all of it, re-uploads attachments into the target subsite's media library, and re-resolves post references on the target by slug.<\/p>\n\n<p>Every copy is created as a fresh draft. Existing posts on the target are never overwritten or modified. If something can't be transferred cleanly (an image fails to copy, a referenced post doesn't exist on the target, an ACF field group has drifted), the plugin flags it on the cloned draft with a yellow warning panel so the editor sees exactly what to fix before publishing.<\/p>\n\n<h4>What gets copied<\/h4>\n\n<ul>\n<li>Standard post fields (title, content, excerpt, date, menu order)<\/li>\n<li>Featured image \u2014 re-uploaded into the target site's media library<\/li>\n<li>All ACF field values, including deeply nested repeaters, groups, and flexible content<\/li>\n<li>Image, file, and gallery attachments \u2014 re-uploaded; never linked across sites<\/li>\n<li><code>post_object<\/code>, <code>relationship<\/code>, and <code>page_link<\/code> references \u2014 re-resolved by slug and post type on the target<\/li>\n<li>Page parent \u2014 re-resolved by slug<\/li>\n<li>Taxonomy terms \u2014 matched by slug; missing terms are auto-created<\/li>\n<\/ul>\n\n<h4>What gets flagged<\/h4>\n\n<p>A yellow notice on the cloned draft lists anything that needs human review:<\/p>\n\n<ul>\n<li>Images that failed to copy \u2192 re-upload manually<\/li>\n<li>References to posts that don't exist on the target \u2192 pick the right one<\/li>\n<li>Page parent that doesn't exist on the target \u2192 set manually if needed<\/li>\n<li>Taxonomy terms that had to be auto-created \u2192 verify or merge<\/li>\n<li>ACF field-group drift (fields on the source that don't exist on the target)<\/li>\n<\/ul>\n\n<p>The panel disappears automatically the first time the post is published, or can be dismissed manually.<\/p>\n\n<p>Requires WordPress Multisite and Advanced Custom Fields Pro (repeater, gallery, and flexible content are Pro-only field types).<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>42works-multisite-cpt-migrator<\/code> folder to <code>\/wp-content\/plugins\/<\/code>, or install via the Network Admin \u2192 Plugins \u2192 Add New uploader.<\/li>\n<li>Network Admin \u2192 Plugins \u2192 Network Activate.<\/li>\n<li>Go to Network Admin \u2192 Settings \u2192 MultiSite Post Cloner and tick the post types that should be clonable across subsites.<\/li>\n<li>On any subsite, open the list for an enabled post type. Each row gets a new \"Copy to location\u2026\" action \u2014 click it and choose a target subsite.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20work%20on%20single-site%20wordpress%3F\"><h3>Does this work on single-site WordPress?<\/h3><\/dt>\n<dd><p>No. The plugin requires Multisite \u2014 its whole job is moving content between subsites in the same network.<\/p><\/dd>\n<dt id=\"what%20gets%20copied%3F\"><h3>What gets copied?<\/h3><\/dt>\n<dd><p>Standard post fields, the featured image, every ACF field value (including nested repeaters, groups, and flexible content), all attachments referenced from those fields (re-uploaded into the target site's media library), post references (re-resolved by slug and post type on the target), the page parent (also re-resolved by slug), and all taxonomy terms (matched by slug; missing terms are auto-created).<\/p><\/dd>\n<dt id=\"why%20are%20some%20fields%20empty%20after%20copying%3F\"><h3>Why are some fields empty after copying?<\/h3><\/dt>\n<dd><p>The plugin is intentionally conservative. If a referenced post doesn't exist on the target subsite (or matches multiple candidates), the reference is left empty and flagged on the warning panel rather than silently guessing. Same for unmatched page parents and failed image transfers. The warning panel on the cloned draft lists every item that needs your attention so nothing slips through unnoticed.<\/p><\/dd>\n<dt id=\"does%20this%20work%20with%20gutenberg%20and%20the%20classic%20editor%3F\"><h3>Does this work with Gutenberg and the Classic Editor?<\/h3><\/dt>\n<dd><p>Yes, both. The warning panel renders in either editor.<\/p><\/dd>\n<dt id=\"does%20this%20require%20acf%20pro%3F\"><h3>Does this require ACF Pro?<\/h3><\/dt>\n<dd><p>Yes. The plugin's value comes from walking deeply nested field structures, and <code>repeater<\/code>, <code>flexible_content<\/code>, and <code>gallery<\/code> are ACF Pro-only field types. ACF free does not provide the structures the cloner is built around.<\/p><\/dd>\n<dt id=\"can%20i%20undo%20a%20copy%3F\"><h3>Can I undo a copy?<\/h3><\/dt>\n<dd><p>Each copy is an independent draft on the target subsite. To undo, just delete the draft. The plugin never modifies or deletes anything else \u2014 the source post is untouched and there is no two-way sync.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>0.2.0<\/h4>\n\n<ul>\n<li>Configurable per-network list of post types eligible for cloning, at Network Admin \u2192 Settings \u2192 MultiSite Post Cloner.<\/li>\n<li>Dynamic ACF field-group discovery \u2014 no hard-coded group keys.<\/li>\n<li>Support for <code>post_object<\/code>, <code>relationship<\/code>, and <code>page_link<\/code> reference fields, with conservative slug + post-type matching.<\/li>\n<li>Page parent and <code>_wp_page_template<\/code> carried to the target.<\/li>\n<li>Field-group drift detection.<\/li>\n<li>Taxonomy auto-create reporting.<\/li>\n<li>Persistent warning panel on the cloned draft listing anything that needs review before publishing.<\/li>\n<li>WP-CLI: <code>wp mspc copy &lt;source_id&gt; --to=&lt;blog_id&gt;<\/code>.<\/li>\n<\/ul>","raw_excerpt":"Copy posts, pages, and custom post types between WordPress Multisite subsites. Supports ACF fields, galleries, and references.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/frp.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/321430","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/frp.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/frp.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/frp.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=321430"}],"author":[{"embeddable":true,"href":"https:\/\/frp.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/42works"}],"wp:attachment":[{"href":"https:\/\/frp.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=321430"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/frp.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=321430"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/frp.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=321430"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/frp.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=321430"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/frp.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=321430"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/frp.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=321430"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}