Codes To Duplicate Pages or Posts For Wordpress
Codes To Duplicate Pages or Posts For Wordpress
$post_id = absint($_GET['post']);
$post = get_post($post_id);
$new_post = array(
'post_title' => $post->post_title . ' (Duplicate)',
'post_content' => $post->post_content,
'post_status' => 'draft',
'post_author' => $post->post_author,
'post_type' => $post->post_type,
);
$new_post_id = wp_insert_post($new_post);
if ($new_post_id) {
$taxonomies = get_object_taxonomies($post->post_type);
foreach ($taxonomies as $taxonomy) {
$terms = wp_get_object_terms($post_id, $taxonomy);
foreach ($terms as $term) {
wp_set_object_terms($new_post_id, $term->slug, $taxonomy, true);
}
}
$meta_infos = get_post_meta($post_id);
foreach ($meta_infos as $meta_key => $meta_values) {
foreach ($meta_values as $meta_value) {
add_post_meta($new_post_id, $meta_key, $meta_value);
}
}
wp_redirect(admin_url('post.php?action=edit&post=' . $new_post_id));
exit;
} else {
wp_die(__('Error duplicating the item.'));
}
}
add_action('admin_action_duplicate_post_as_draft', 'duplicate_post_as_draft');