Appearance
Duplicate a post or page in Laravel — Yoast Duplicate Post's data, no WordPress
The workshop was full, so it runs again next month. The new post is the old one with another date: the same text, the same picture, the same categories, the same SEO fields. Without a copy button someone opens two tabs and pastes field by field, and the excerpt or the featured image is forgotten on the way. A page that is live has the opposite problem: the opening hours change next week, and every edit saved on it is on the site at once — half-written winter hours for a day, or a draft kept in a text file until Monday.
On WordPress, more than four million sites hand both to Yoast Duplicate Post. kitloom/duplicate-posts does the same on a Laravel site — and reads that plugin's own data, so a site that moves from WordPress keeps its settings, and its copies still know their originals.
Ask the agent
With kitloom/ai connected, an AI agent copies and rewrites with the rights of the user whose key it holds:
- "Copy the bookbinding workshop post to a new draft for the second evening."
- "Prepare the winter hours on the Visiting page, and put them live on Monday."
- "Make a copy of the walnut product for the 1 kg bag."
It calls duplicate_posts_copy, duplicate_posts_rewrite and duplicate_posts_republish, and edits the copy with the content tools it already has. A copy is a draft by the agent's user; republishing asks for the right to publish the type, so an author's key prepares a rewrite and an editor puts it live. How to connect one: Run your site from Claude or Cursor.
In the admin
| Action | What it does | Where |
|---|---|---|
| New draft | copies the record and opens the copy | a row's menu in the list, the edit page |
| Clone | copies the record and leaves you in the list | a row's menu, the bulk actions |
| Rewrite & Republish | makes a working copy of a published record | a row's menu, the edit page |
| Republish | writes the working copy over its original and deletes the copy | the copy's row and edit page |
Duplicate Posts → Settings says what a copy takes — title, excerpt, content, featured image, template, post format and menu order at first; the date, status, slug, author and password if you tick them — a title prefix or suffix ("Copy of", "(copy)"), the meta keys and taxonomies a copy leaves behind (rank_math_* keeps the SEO title with the original), which post types offer the actions, and where. An Original column in the list and a box on a copy's edit page say what each copy was made from.
Who may copy is a permission on the roles, Copy posts: administrators and editors have it at first, as the plugin gives it, and a user copies only what they may edit.
Rewrite & Republish
Press Rewrite & Republish on a published page and a draft copy of all of it opens: the words, the image, the custom fields, the terms. Edit it as long as you need; the page stays live as it was. Republish writes the copy over the original, which keeps its address, its date and its comments; the copy is deleted, and the original's revisions keep what it was before, so it can be restored.
To put it live on a day ahead, give the copy that date and publish it: it is scheduled, and on the day it goes over the page by itself — from the same scheduler line that publishes scheduled posts.
What else goes along
Custom fields and other meta are copied as they are, and so are the terms. What never goes along: the editing lock, the old addresses kept for redirects, the revisions — a copy starts its own history. The other modules take care of their own data:
- Languages — the translations are copied too, each at an address of its own in its language.
- Shop — a copied product has no SKU, no sales and no rating, as WooCommerce's own Duplicate makes it, and takes its variations; a rewrite leaves the stock as the shop counted it meanwhile.
- Future Actions — a scheduled unpublish stays with the original.
- Themes with fields in tables — the recipe card of a Saffron recipe is copied with it.
The data is the plugin's
The settings are Yoast Duplicate Post's options under their own names — duplicate_post_copytitle and the rest, duplicate_post_types_enabled, duplicate_post_show_link — and a copy carries the plugin's marks: _dp_original for the record it was made from; a working copy _dp_is_rewrite_republish_copy, its original _dp_has_rewrite_republish_copy. The capability is the plugin's copy_posts. A WordPress site that moves to kitloom keeps what it chose, and a copy that was being rewritten there can be republished here.
Watch it
Try it
Open a sandbox in one click, with no sign-up: Filament or Nova. Every detail of the module is in the Duplicate Posts guide.