Loading...

How to duplicate WordPress pages or posts?

How to duplicate WordPress pages or posts?

The duplicate copy of your page and posts can be useful to you in the future. So in this article, we are going to learn how you can make a duplicate copy of your post and pages.

I) Using duplicate Post plugin

 
If you want to use a plugin to make a copy of your posts then the duplicator post plugin is the best option for you. It not only makes a copy of your post but also makes a copy of your comments, slugs, menu order, etc. You also have options to set a prefix or suffix. This will make it easier to spot the difference between the original and the duplicate. For example, you can use prefixes like "copy of". So if the original title of the post is " What is a plugin", then the duplicate title will appear as " copy of what is a plugin".

 Follow the steps to duplicate a post or page using the plugin:

1. First, Install and Activate the Duplicate Post plugin.

2. Log in to your WordPress dashboard, then go to Pages>All Pages to clone a page. Or go to Posts> All Posts to clone a post.

3. Then go to the page or post that you want to clone. Here you will see two new options viz. Clone and New Draft.

4. To make a duplicate of the selected post, click on Clone. To make a cloned version of the selected post and open it in the post editor, click on New Draft.

II) Using Duplicate Page and Post plugin

Using this plugin, you can clone WordPress pages and posts quickly. In this case, the title, content, or style remain unchanged.

Follow the below steps to make a duplicate copy of your pages or posts :

  1. First, Install and Activate the plugin, then go to the All Pages or All Posts menu (depending on what you want to duplicate).
  2. Go to the page or post that you want to duplicate. Click on the Duplicate button.
  3. Now the page or post will be cloned. And it will appear as a new draft with the same name as the original.                      That's it. This is the way in which you can make a clone of your post or page.

III) Duplicate your page or post without plugins

You can also use some codes to duplicate your posts and pages. We recommend you make a backup copy of your website before editing any files in it.
 I am going to edit the function.php file of my website. To enable post duplication in WordPress you have to paste the below code inside the function.php file:

* Function for post duplication. Dups appear as drafts. User is redirected to the edit screen
*/
function rd_duplicate_post_as_draft(){
global $wpdb;
if (! ( isset( $_GET['post']) || isset( $_POST['post']) || ( isset($_REQUEST['action']) && 'rd_duplicate_post_as_draft' == $_REQUEST['action'] ) ) ) {
wp_die('No post to duplicate has been supplied!');
}
/*
* Nonce verification
*/
if ( !isset( $_GET['duplicate_nonce'] ) || !wp_verify_nonce( $_GET['duplicate_nonce'], basename( __FILE__ ) ) )
return;
/*
* get the original post id
*/
$post_id = (isset($_GET['post']) ? absint( $_GET['post'] ) : absint( $_POST['post'] ) );
/*
* and all the original post data then
*/
$post = get_post( $post_id );
/*
* if you don't want current user to be the new post author,
* then change next couple of lines to this: $new_post_author = $post->post_author;
*/
$current_user = wp_get_current_user();
$new_post_author = $current_user->ID;
/*
* if post data exists, create the post duplicate
*/
if (isset( $post ) && $post != null) {
/*
* new post data array
*/
$args = array(
'comment_status' => $post->comment_status,
'ping_status' => $post->ping_status,
'post_author' => $new_post_author,
'post_content' => $post->post_content,
'post_excerpt' => $post->post_excerpt,
'post_name' => $post->post_name,
'post_parent' => $post->post_parent,
'post_password' => $post->post_password,
'post_status' => 'draft',
'post_title' => $post->post_title,
'post_type' => $post->post_type,
'to_ping' => $post->to_ping,
'menu_order' => $post->menu_order
);
/*
* insert the post by wp_insert_post() function
*/
$new_post_id = wp_insert_post( $args );
/*
* get all current post terms ad set them to the new post draft
*/
$taxonomies = get_object_taxonomies($post->post_type); // returns array of taxonomy names for post type, ex array("category", "post_tag");
foreach ($taxonomies as $taxonomy) {
$post_terms = wp_get_object_terms($post_id, $taxonomy, array('fields' => 'slugs'));
wp_set_object_terms($new_post_id, $post_terms, $taxonomy, false);
}

/*
* duplicate all post meta just in two SQL queries
*/
$post_meta_infos = $wpdb->get_results("SELECT meta_key, meta_value FROM $wpdb->postmeta WHERE post_id=$post_id");
if (count($post_meta_infos)!=0) {
$sql_query = "INSERT INTO $wpdb->postmeta (post_id, meta_key, meta_value) ";
foreach ($post_meta_infos as $meta_info) {
$meta_key = $meta_info->meta_key;
if( $meta_key == '_wp_old_slug' ) continue;
$meta_value = addslashes($meta_info->meta_value);
$sql_query_sel[]= "SELECT $new_post_id, '$meta_key', '$meta_value'";
}
$sql_query.= implode(" UNION ALL ", $sql_query_sel);
$wpdb->query($sql_query);
}
/*
* finally, redirect to the edit post screen for the new draft
*/
wp_redirect( admin_url( 'post.php?action=edit&post=' . $new_post_id ) );
exit;
} else {
wp_die('Post creation failed, could not find original post: ' . $post_id);
}
}
add_action( 'admin_action_rd_duplicate_post_as_draft', 'rd_duplicate_post_as_draft' );
/*
* Add the duplicate link to action list for post_row_actions
*/
function rd_duplicate_post_link( $actions, $post ) {
if (current_user_can('edit_posts')) {
$actions['duplicate'] = 'Duplicate';
}
return $actions;
}
add_filter( 'post_row_actions', 'rd_duplicate_post_link', 10, 2 );

For this purpose, you can use File Manager, FTP client, or the inbuilt WordPress file editor.
To use the WordPress file editor go to Appearence> Theme Editor and then select the theme function.

After you have successfully pasted the code in the file, you will see a Duplicate button in the All Posts and All Pages menu.

Did you find this article useful?

Related Articles

How to add password to WordPress admin directory via cPanel ? In WordPress, you can access the WordPress admin directory by logging into your WordPress admin acco...
How to fix 500 internal server error ? There is no clear-cut solution to solve the 500 internal server error. You have to try various tips ...
How to change WordPress URL using phpMyAdmin in the DirectAdmin? The WordPress URL can be changed manually, by the use of phpMyAdmin from the DirectAdmin panel. To c...
How to set up caching for your WordPress website? With the use of Caching, your website's speed can be improved as it acts as the memory and saves som...
How to protect your Site from Brute force attacks? Hackers can upload malicious malware using brute force attacks. It can cause your site to become ina...

Categories

Website Maintenance 42
Website Maintenance Knowledge Base
SEO Services 40
SEO Services Knowledge Base
Website Design 51
Website design
Google Workspace 56
Set up Google Workspace for your team. Discover how to manage a team, migrate emails, share files, work from anywhere, and set up mobile management.
Billing 25
All type of billing information
Client Area Guide 1
Client Area Features
Delegate Access 10
Articles on Access Delegation for Third-party Platforms
Password Management 5
Password Management at Aarav Infotech India Pvt. Ltd.
WordPress 63
Knowledge base for WordPress

Shopping Cart

Your cart is empty