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

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.

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.

  • 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.
  • 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.

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'] = '<a href="' . admin_url('admin.php?action=duplicate_post&post=' . $post->ID) . '" title="Duplicate this item" rel="permalink">Duplicate</a>';
    return $actions;
}

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

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.

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.

Related posts

How to Submit and Upload a New WordPress Plugin to SVN | Complete Guide

The Best Programming Languages for Web Development in 2024

How to Create Custom Breadcrumbs in WordPress Without a Plugin