WordPress content duplication

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 ContentChoose how the copy is created

Clone title

Copy of Homepage

Status

Draft

Featured image

Use the same image
Deep clone embedded images
Duplicate attached media
Clone
Quick answer

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.

The "duplicate this" problem

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 dedicated WordPress solution

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.

Verified feature set

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.

Configuration

A dialog with real choices

Title, status, parent for hierarchical types, featured image handling and media duplication all get set before cloning.

TitleStatus
Media handling

Selective image duplication

Embedded images and directly attached media can each be duplicated independently, or left pointing at the shared original.

Deep cloneAttached media
Safety

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.

Request lockShutdown rollback
Limits

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.

50 imagesReported, not silent
Compatibility

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.

WooCommerce excludedBuilders excluded
Practical use cases

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.

Operational benefits

Duplication that stays under your control

The module combines a real starting point, transparent choices and safe failure handling.

A real starting point, not a blank pageA clone carries over the content, structure and metadata that made the original work, instead of starting from nothing.
Nothing happens by surpriseThe dialog shows every choice, title, status, parent and media handling, before a single thing gets duplicated.
Safe even when something goes wrongA failed or interrupted clone gets rolled back automatically, rather than leaving orphaned posts or files behind.
Respects what shouldn't be generically clonedProduct and page-builder content types stay excluded by default, since they need their own duplication logic to stay correct.
Performance behaviour

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.

Security implementation

Checked twice, and rolled back on failure

Clone Content re-validates every clone server-side and cleans up automatically if anything goes wrong.

01

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.

02

Nonce-verified requests

Every clone and parent-search request gets validated against a dedicated nonce before anything runs.

03

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.

04

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.

Verified compatibility

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.

Content types

Posts, pages, custom post types, media

Any public post type can be enabled individually; media items clone by file rather than by post content.

post_row_actionsmedia_row_actions
Excluded by design

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.

WooCommerceElementor, Bricks
WordPress internals

Also excluded

Revisions, nav menu items, customizer changesets, block templates and patterns stay out of the generic cloning pipeline entirely.

wp_templatenav_menu_item
Solution comparison

TheOneWP versus common alternatives

Compare the verified Clone Content implementation with a typical single-purpose duplication plugin.

CapabilityTheOneWP Clone ContentOther common solutions
Triggering a clone A Clone action right in the existing list tableOften a separate plugin with its own interface
Configuration before cloning A dialog for title, status, parent and media handlingFrequently duplicates everything blindly, with no choices
Media handling Deep clone embedded images and attached media independentlyUsually all-or-nothing, or unavailable
Failure handling Locked against duplicates, with automatic rollbackA failed duplicate can leave orphaned posts or files behind
Compatibility awareness Skips WooCommerce and page-builder types by defaultMay attempt to clone types it can't safely duplicate
Recommended workflow

Clone a page correctly in four steps

Enable it only for the post types you actually duplicate, then use the dialog deliberately each time.

01

Enable Clone Content

Activate the module from the TheOneWP Content settings tab and choose which post types can use it.

02

Open the Clone dialog

From any enabled post type's list, use the Clone row action to open the configuration dialog.

03

Set the details

Choose the title, status, parent if applicable, and how the featured image and media should be handled.

04

Confirm and review

Confirm to start the clone, then check any reported warnings once it finishes, especially on content with many embedded images.

Best practices

Clone deliberately, not by default

A few habits keep cloning fast and predictable as a site grows.

01

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.

02

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.

03

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.

04

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.

Common mistakes

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.

Frequently asked questions

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.