Home » Effortlessly Duplicate Pages, Posts, and Products in WordPress Without Plugins

Effortlessly Duplicate Pages, Posts, and Products in WordPress Without Plugins

by Shubham Verma
0 comments 1.8K views 4 minutes read

Are you tired of relying on plugins to duplicate pages, posts, products, or custom post types in WordPress? Many plugins add unnecessary code to your website, impacting its performance. In this guide, we’ll walk you through a simple and efficient way to duplicate content without the need for plugins.

Why Avoid Plugins for Duplicating Content?

While plugins offer convenience, they often come with the downside of adding unnecessary code to your website. This can lead to performance issues and potential conflicts with other plugins. By using custom code directly in the functions.php file, you can achieve the same results without compromising your website’s efficiency.

Benefits of This Approach:

  • Plugin-Free Performance: Avoids potential plugin bloat and conflicts.
  • Lightweight & Efficient: Code-based solution ensures faster loading times.
  • Flexibility: Duplicates any WordPress content type, including custom post types.
  • Customization: Easily modify the code to tailor duplication behavior to your needs.

Remember:

  • Always create a child theme before adding code to functions.php.
  • This solution might require basic PHP understanding for implementation.
  • Back up your website before making any code changes.

By ditching bulky plugins and utilizing this efficient code-based approach, you can effortlessly duplicate your WordPress content at lightning speed, boosting your content creation workflow without compromising website performance.

Implementing Custom Code for Automatic Duplication

To get started, add the following code to your functions.php file:

add_action('admin_action_duplicate_post', 'sv_duplicate');

function sv_duplicate() {
    if(isset($_GET['post'])){
        $post_id = $_GET['post'];
    }else{
        die();
    }

    $post = get_post($post_id);
    
    $new_post_args = array(
        'post_title' => $post->post_title . ' (Copy)',
        'post_content' => $post->post_content,
        'post_status' => 'draft', // or 'publish' for published posts
        'post_type' => $post->post_type,
    );

    $new_post_id = wp_insert_post($new_post_args);

    // Duplicate custom fields if needed
    $custom_fields = get_post_custom($post_id);
    foreach ($custom_fields as $key => $value) {
        update_post_meta($new_post_id, $key, $value[0]);
    }

    // Redirect to the new duplicated post
    wp_redirect(admin_url('post.php?action=edit&post=' . $new_post_id));
    exit;
}

add_filter('post_row_actions', 'sv_add_duplicate_post_link', 10, 2);
function sv_add_duplicate_post_link($actions, $post) {
    $actions['duplicate'] = 'Duplicate';
    return $actions;
}

This code creates a duplicate of a post with the title appended with “(Copy)” and redirects you to the new duplicated post.

Adding Duplicate Option to All Content

Now that you have the code in place, you can enjoy the convenience of a “Duplicate” option for all your content. Simply navigate to the desired post, page, product, or custom post type, and you’ll find the “Duplicate” option in the post actions.

Conclusion

By implementing this straightforward custom code, you can efficiently duplicate pages, posts, products, or any custom post type without the need for plugins. Say goodbye to unnecessary code bloat and enjoy a streamlined WordPress experience. Take control of your website’s performance and duplicate content with ease.

You may also like

Leave a Comment

ShubhamVermma.com: Your one-stop destination for live technical tutorials. Master PHP, Laravel, WordPress, Node.js, and more with our expert instructors.

Subscribe

Subscribe my Newsletter for new Articles. Let's stay updated!

A Technology Media Company – All Right Reserved.