Webstick.nl logo Webdesignburo en Wordpress-blog

Post/pagina in WordPress kopiëren [2021] 💥

pagina in WordPress kopiëren


Een pagina of bericht kan eenvoudig gedupliceerd worden in WordPress. Dit is meer dan alleen content kopiëren en plakken. Om tijd en moeite te besparen bij het bijwerken of opnieuw ontwerpen van uw website, kunt u de paginasjabloon, SEO-gegevens, afbeeldingen en andere informatie behouden. Het is gemakkelijk om pagina's, berichten en alle bijbehorende gegevens in WordPress te dupliceren. U kunt het werk doen met of zonder een plug-in. Dit artikel laat je zien hoe je veilig pagina's of berichten kunt klonen en introduceert ook plug-ins die kunnen helpen. Laten we beginnen!

Pagina kopiëren in WordPress met plug-ins

Een plug-in maakt het gemakkelijk om een pagina in WordPress te klonen. Alles gebeurt in je dashboard. Omdat plug-ins de code van uw site niet wijzigen, zijn ze de beste manier om een pagina of bericht te dupliceren. Deze plug-ins zijn het bekijken waard als u op zoek bent naar de juiste tool.

1. Duplicate Post

Duplicate Post is een populaire keuze voor het klonen van WordPress-pagina's of berichten. De plug-in is eenvoudig te gebruiken en kopieert alles, van de inhoud van het bericht of de pagina tot de opmerkingen. Je kunt er ook voor kiezen om een voor- of achtervoegsel te gebruiken om onderscheid te maken tussen de originele post en de kloon.

Je kunt een bericht gemakkelijk dupliceren met deze tool door simpelweg:

  1. Installeer de plug-in en activeer deze.
  2. Ga naar Berichten > Alles voor het klonen van berichten of pagina's > Voor het klonen van pagina's.
  3. Om de pagina of het bericht dat u zoekt te kopiëren, navigeert u ernaar en klikt u op Klonen.
  4. U kunt meerdere pagina's of berichten selecteren en u kunt ze allemaal tegelijk klonen met Bulkacties.

2. Duplicate Page

Duplicate Page heeft een paar extra functies die andere kloonsoftware niet biedt. Deze plug-in kan pagina's, berichten en aangepaste berichttypen dupliceren. U kunt de resulterende kopieën ook in concepten opslaan als in behandeling, openbaar en privé.

Je kunt een bericht gemakkelijk dupliceren met deze tool door simpelweg:

  1. Installeer de plug-in en activeer deze.
  2. U kunt de instellingen aanpassen aan uw behoeften.
  3. Ga naar pagina's > Alles en Berichten > alles om de inhoud te vinden die u zoekt.
  4. Klik op de optie Dit kopiëren.

3. Duplicate Page and Post

Duplicate Page and Post heeft niet veel functies, maar het maakt dit goed in snelheid. Deze plug-in is lichtgewicht en snel. Het zal uw site niet vertragen met te veel opties.

Je kunt een bericht gemakkelijk dupliceren met deze tool door simpelweg:

  1. Installeer de plug-in en activeer deze.
  2. U kunt de berichten Alle en Alle pagina's vinden, afhankelijk van wat u probeert te dupliceren.
  3. Klik op de pagina of het bericht dat je wilt klonen.
  4. Klik op de knop Dupliceren.


Pagina kopiëren in WordPress zonder plug-ins

Om een WordPress-pagina of -post te klonen, heb je geen plug-in nodig. U kunt dit ook handmatig doen door het bestand Functions.php te bewerken of relevante code te kopiëren en te plakken. Laten we beide methoden eens bekijken.

1. Klonen inschakelen via functions.php

Het bewerken van de code in uw function.php-bestand is een manier om WordPress-pagina's of -berichten te klonen. Hoewel dit een eenvoudige taak is, moet u voorzichtig zijn en een reservekopie van uw website maken voordat u dit doet. U moet de map Functions.php openen en deze openen om te bewerken. U moet dit codefragment dan aan het einde van uw bestand toevoegen.

/*
 * 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 );

Dat was tot nu toe alleen voor berichten. Om hetzelfde te kunnen doen voor pagina's, gebruik je dezelfde code nogmaals in je functions.php maar vervang de laatste regel (108) door:


add_filter('page_row_actions', 'rd_duplicate_post_link', 10, 2);

Wees verstandig en installeer een van deze plug-ins omdat dit de gemakkelijkste manier is en ook het bewerken van uw functions.php overleeft alleen thema-upgrades als u een child-thema gebruikt.


Deze link geeft u vandaag 20% korting op het Divi-theme!

Divi



Scroll naar boven