Duplicate Posts and Pages as Drafts
Duplicate WordPress posts and pages into editable drafts, with blocks, terms, featured image and template intact.
Overview
Content Tools lets you duplicate posts and pages in WordPress with a Duplicate as draft link in your Posts and Pages lists. One click copies the item into a new draft and opens it in the editor, so you can rework a landing page or reuse a post layout without copying blocks by hand. The original is never touched.
The module is off by default. Turn it on from the Functionalities dashboard, then hover over any post or page in the list.
Duplicate a Post or Page
- Open Posts or Pages in the WordPress admin.
- Hover over the row you want to copy and click Duplicate as draft.
- The new draft opens in the editor. Rename it before you publish.
The copy keeps the original title. WordPress builds the slug from the title when you publish and adds -2 if the old slug is taken, so change the title first if you want a clean URL. The link only appears on rows you’re allowed to copy, and never on trashed items or auto-drafts.
What Gets Copied
| Item | Copied | Notes |
|---|---|---|
| Title, content and blocks | Yes | Block markup is copied exactly as stored. |
| Excerpt | Yes | |
| Categories, tags and custom taxonomies | Yes | Every taxonomy registered for the post type. |
| Featured image | Yes | Points to the same media file. Nothing is uploaded again. |
| Page template | Yes | |
| Menu order, comment and pingback settings | Yes | |
| Author | No | The draft belongs to whoever clicked the link. |
| Status and date | No | Always a draft, dated when you create it. |
| Slug | No | Generated from the title on publish. |
| Parent page | No | A duplicated child page starts at the top level. Set the parent again under Page Attributes. |
| Comments and revisions | No | |
| Custom fields and page builder data | Only if allowlisted | See the next section. |
Copy Custom Fields
Only the featured image and page template are copied by default. SEO plugins and page builders keep their data in custom fields, so add the keys you want with the functionalities_content_tools_meta_keys filter. It receives the key list and the source post.
add_filter( 'functionalities_content_tools_meta_keys', function ( $keys, $post ) {
$keys[] = 'rank_math_description';
return $keys;
}, 10, 2 );
Keys that start with an underscore are protected in WordPress. The person duplicating needs edit_post_meta for each one, which usually means the plugin that owns the key registers it with an auth_callback. Without that, the duplicate stops with an error instead of quietly dropping the field.
A few keys are never copied, whatever the filter returns: edit locks (_edit_lock, _edit_last), old slugs, trash and attachment metadata, and any key that starts with _functionalities_, such as Link Health reports.
Permission Checks
Content Tools checks permissions before it writes anything. You need to be able to:
- Edit the source post or page.
- Create new items of that post type.
- Assign terms in every taxonomy the source uses.
- Edit each extra custom field you added to the allowlist.
If any copy step fails, the half-made draft is deleted. You won’t end up with a copy that’s missing its categories or featured image.
What Content Tools Doesn’t Cover
- Custom post types. Only native posts and pages get the link, so products, docs and other custom types don’t.
- Bulk duplication. Copy one item at a time.
- Page builder layouts stored in custom fields. They need the filter above and the builder’s own meta permissions.