Code duplicate post WordPress, nhân đôi bài viết

5/5 - (1 bình chọn)
Bạn có thể viết code theo ý mình để duplicate WordPress page hoặc post. Nếu bạn thích lập trình, cách này sẽ dành cho bạn. Kể cả nếu không phải, chúng tôi sẽ chỉ toàn bộ cách làm cho bạn. Bên dưới, bạn sẽ thấy code snippet để kích hoạt post duplication trong WordPress:
/*

* 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'] = '<a href="' . wp_nonce_url('admin.php?action=rd_duplicate_post_as_draft&post=' . $post->ID, basename(__FILE__), 'duplicate_nonce' ) . '" title="Duplicate this item" rel="permalink">Duplicate</a>';

}

return $actions;

}

add_filter( 'post_row_actions', 'rd_duplicate_post_link', 10, 2 );
add_filter('page_row_actions', 'rd_duplicate_post_link', 10, 2);
5/5 - (1 bình chọn)


  1. [url=https://arusak-attestats.ru/]https://arusak-attestats.ru[/url] – Купить аттестат школы – ключ к твоему перспективам. В нашем портале все вы сможете без труда и оперативно приобрести свидетельство, нужный для того, чтобы последующего обучения или трудоустройства. Наша специалисты обеспечивают качество и секретность предоставления услуг. Покупайте учебный сертификат здесь и откройте дополнительные возможности для того, чтобы своего профессионального роста и карьеры.

  2. [url=https://arusak-attestats.ru/]arusak-attestats.ru[/url] – Купить аттестат за 11 – возможность к твоему будущему. В данном портале вы можете просто и оперативно приобрести аттестат, обязательный для того, чтобы дальнейшего изучения или профессионального роста. Наши эксперты обеспечивают качество и конфиденциальность предоставления услуг. Приобретайте школьный сертификат в нашем сервисе и откройте дополнительные перспективы для того, чтобы своего профессионального роста и трудоустройства.

  3. Доброго!

    Для всех, кто проникся стихами, поэмами и создает их собственные произведения, Мay Poems – это источник лучших работ великих мировых поэтов и талантливых новичков поэзии!
    Я сам начинающий поэт, и этот портал помог мне обрести уверенность и писать более интересно и искренне.
    Лучший способ наслаждаться поэзией и развиваться в ней – это читать стихи и творить их самостоятельно, а также обмениваться своими творениями и обсуждать их с друзьями в сообществах.
    Поэзия действительно увлекательна и вдохновляет на развитие. [url=https://may-poems.ru]текст стихотворения полностью[/url] Я советую вам тратить свое время с умом и заниматься тем, что действительно вас интересует!
    Все самое лучшее на сайте https://may-poems.ru/

    Стихотворения Сергея Есенина
    Лирика Игоря Северянина
    Поэзия Бориса Гребенщикова
    Стихи поэтов классиков

    Удачи!

  4. [url=https://arusak-attestats.ru/]http://arusak-attestats.ru[/url] – Купить аттестат за 9 – возможность для твоему перспективам. На нашем сервисе все вы можете просто и оперативно купить аттестат, обязательный для того, чтобы последующего изучения или профессионального роста. Наша эксперты гарантируют качество и секретность предоставления услуг. Покупайте образовательный аттестат у нас и проявите новые варианты для своего карьерного развития и трудоустройства.

  5. [url=https://arusak-attestats.ru/]http://arusak-attestats.ru[/url] – Аттестат купить окончание – возможность для вашему перспективам. В нашем портале вы сможете просто и оперативно купить свидетельство, необходимый для последующего получения образования или профессионального роста. Наши консультанты гарантируют качество и секретность услуги. Приобретайте учебный аттестат в нашем сервисе и откройте новые возможности для вашего карьерного развития и карьеры.

  6. You actually make it seem so easy with your presentation but
    I find this topic to be really something
    that I think I would never understand. It seems too complex and extremely broad for
    me. I’m looking forward for your next post, I’ll
    try to get the hang of it!

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *