Clone any WordPress post, page or file in one click
Clone Content duplicates a post, page or media item straight from its list row, opening a dialog to set the title, status, parent and media handling before anything gets copied.
- Clone posts, pages, custom post types and media files.
- Choose the title, status, parent page and featured image handling.
- Duplicate embedded images and attached media, or leave them shared.
- Skips WooCommerce, page builders and other types needing their own workflow.
Clone title
Status
Featured image
What does Clone Content do?
When the content_clone module is active, TOWP_Content_Clone adds a Clone action to the row actions of every enabled post type, opening a dialog instead of duplicating silently. Confirming it sends a nonce-protected AJAX request that copies the post, its taxonomy terms and its metadata through public WordPress APIs, optionally duplicating the featured image, images embedded in the content, and directly attached media. A short-lived lock keeps a slow or retried request from starting a second clone of the same content, and a registered shutdown handler rolls back any partially-created clone if the operation fails or times out.
WordPress has no built-in way to copy content
Rebuilding a working page from scratch, or duplicating one blindly with no choices, are the two options WordPress core leaves you with.
Recreating a page from scratch wastes real work
Rebuilding a similar page's layout, content and settings by hand throws away everything that made the original correct.
A silent duplicate isn't always what you want
Even where duplication exists, it often copies everything blindly, with no chance to rename it, change its status, or decide whether attached media should come along.
A dialog, not a silent copy
The module turns cloning into a deliberate step, with a dialog for the choices that actually matter before anything gets duplicated.
One Clone action per row
Every enabled post type gets a Clone action right in its list table, opening a dialog instead of copying immediately.
Choices before the copy happens
Title, status, parent, featured image handling and media duplication all get set before the clone runs, not fixed afterward.
Guarded against half-finished clones
A request lock and a shutdown-triggered rollback keep a failed or retried operation from leaving a broken, partial copy behind.
Real control over how content gets copied
Every capability of Clone Content below is present in the supplied PHP class, its localized strings and settings registration.
A Clone action per row
Appears in the row actions of posts, pages, custom post types and media, only for the types you enable.
A dialog with real choices
Title, status, parent for hierarchical types, featured image handling and media duplication all get set before cloning.
Selective image duplication
Embedded images and directly attached media can each be duplicated independently, or left pointing at the shared original.
Locking and rollback
A short-lived lock blocks a duplicate request for the same content, and a shutdown handler rolls back a clone that fails partway through.
Bounded image duplication
Up to 50 embedded images and 50 attached files get duplicated per clone; anything past that keeps referencing the original and gets reported.
Excludes types that need their own workflow
WooCommerce products and orders, page-builder templates and WordPress internals stay excluded from the generic cloner by default.
Where cloning content helps most
Clone Content supports the moments when the fastest starting point is something that already works.
Building similar pages fast
Clone a well-built landing page or service page as the starting point for the next one, instead of rebuilding its structure from scratch.
Starting a translated or regional variant
Duplicate a page as the base for a translated or region-specific version, then edit the copy independently.
Testing changes without touching the original
Clone a page as a draft to experiment safely, while the published original keeps serving visitors unchanged.
Duplication that stays under your control
The module combines a real starting point, transparent choices and safe failure handling.
Bounded work, not open-ended
Clone Content caps the most expensive part of cloning rather than leaving it unlimited.
A generous but finite time limit
The clone operation runs under a 300-second limit rather than an unlimited one, so a stuck operation fails cleanly instead of running forever.
Capped image duplication
Duplicating up to 50 embedded images and 50 attachments keeps the worst-case clone inside that time limit, with anything beyond reported rather than silently skipped.
One clone at a time, per item
The request lock prevents a slow browser retry from running the same clone twice in parallel.
Checked twice, and rolled back on failure
Clone Content re-validates every clone server-side and cleans up automatically if anything goes wrong.
Capability-checked at every step
The AJAX handler checks edit_post on the source, the destination type's create capability, and, for publishing, its publish capability.
Nonce-verified requests
Every clone and parent-search request gets validated against a dedicated nonce before anything runs.
Only genuinely cloneable content is accepted
The same status, post-type and integration checks that control whether the Clone button appears also run again server-side, so a direct AJAX call can't bypass them.
Automatic rollback on failure
A registered shutdown function removes any post, meta or file already created if the operation fails or hits its time limit, rather than leaving partial artifacts.
Aware of what it shouldn't touch
The supplied code integrates through APIs present in WordPress core. No compatibility claim beyond the verified implementation is assumed.
Posts, pages, custom post types, media
Any public post type can be enabled individually; media items clone by file rather than by post content.
WooCommerce and page builders
Products, orders, coupons, and templates from Elementor, Bricks, Divi, WPBakery, Fusion Builder and Oxygen stay excluded from the generic cloner, since custom post types built around proprietary data models need their own duplication logic.
Also excluded
Revisions, nav menu items, customizer changesets, block templates and patterns stay out of the generic cloning pipeline entirely.
TheOneWP versus common alternatives
Compare the verified Clone Content implementation with a typical single-purpose duplication plugin.
| Capability | TheOneWP Clone Content | Other common solutions |
|---|---|---|
| Triggering a clone | A Clone action right in the existing list table | Often a separate plugin with its own interface |
| Configuration before cloning | A dialog for title, status, parent and media handling | Frequently duplicates everything blindly, with no choices |
| Media handling | Deep clone embedded images and attached media independently | Usually all-or-nothing, or unavailable |
| Failure handling | Locked against duplicates, with automatic rollback | A failed duplicate can leave orphaned posts or files behind |
| Compatibility awareness | Skips WooCommerce and page-builder types by default | May attempt to clone types it can't safely duplicate |
Clone a page correctly in four steps
Enable it only for the post types you actually duplicate, then use the dialog deliberately each time.
Enable Clone Content
Activate the module from the TheOneWP Content settings tab and choose which post types can use it.
Open the Clone dialog
From any enabled post type's list, use the Clone row action to open the configuration dialog.
Set the details
Choose the title, status, parent if applicable, and how the featured image and media should be handled.
Confirm and review
Confirm to start the clone, then check any reported warnings once it finishes, especially on content with many embedded images.
Clone deliberately, not by default
A few habits keep cloning fast and predictable as a site grows.
Enable it only for the types you actually duplicate
Turning it on for every post type adds a Clone action everywhere, even where it's rarely useful.
Use deep cloning intentionally
Duplicating embedded images creates new files and takes longer, so reserve it for cases where the clone genuinely needs independent images.
Read reported warnings after a large clone
Content with many embedded images can hit the duplication cap; the report tells you which images still reference the original.
Remember page builders need their own workflow
A page built with Elementor, Bricks or a similar builder should use that builder's own duplication feature, not the generic cloner.
Avoid assumptions that cause confusion
The module has a defined scope, and its exclusions are deliberate rather than accidental.
Expecting every post type to be cloneable
WooCommerce products, page-builder templates and several WordPress internal types stay excluded by design, not by omission.
Assuming a large clone finishes instantly
Duplicating many embedded images takes real time; the operation runs under a generous but finite time limit rather than instantly.
Not noticing embedded images stayed shared
Without deep cloning enabled, embedded images keep pointing at the original file, which is often the intended, faster behaviour.
Clone Content FAQ
These answers come directly from the verified class, its localized strings and settings registration.
What does Clone Content do?
It duplicates a post, page or media item from a Clone action on its list row, opening a dialog to set the title, status, parent and media handling first.
Can I clone any post type?
Only the post types you enable in settings, and only if they aren't on the module's fixed exclusion list, which covers WooCommerce, page builders and WordPress internals.
What happens to the featured image when I clone something?
You choose: keep the same image, create a new copy, or leave the clone without one.
Are images embedded in the content duplicated too?
Only if you turn on "Deep clone embedded images"; otherwise the clone keeps referencing the same image files as the original.
What happens if a clone fails partway through?
A registered rollback removes any post, metadata or file already created during that attempt, rather than leaving a broken partial copy.
Can I clone a page and choose a different parent for it?
Yes, for hierarchical post types: keep the original parent, make the clone top-level, or search for a different parent page.
Is there a limit on how many images can be duplicated in one clone?
Yes. Up to 50 embedded images and 50 attached files get duplicated per clone; anything beyond that keeps referencing the original and gets reported.
Why can't I clone a WooCommerce product?
Products are excluded from the generic cloner because their variations, stock and lookup tables need a dedicated duplication workflow to stay correct.
Who can clone content?
Whoever already has permission to edit the original content and to create new content of that same type.
Can two people accidentally clone the same item at once?
No. A short-lived lock prevents a second clone of the same content from starting while one is already running.
Stop rebuilding pages from scratch.Clone them instead.
Use Clone Content to duplicate a post, page or media file in one step, with full control over the title, status and media before anything copies.

