Hur man duplicerar en sida i WordPress utan plugins 2023

Om du använder WordPress för att skapa och hantera din webbplats, kanske du någon gång vill duplicera en sida. Du kanske tänker att du helt enkelt kan kopiera och klistra in allt innehåll på en ny sida.

Detta fungerar bara i viss utsträckning, eftersom mycket av din formatering, såsom funktioner, bilder och SEO, kommer att gå förlorade och måste göras om. För mer information om detta ämne, kan du kolla in den här artikeln om duplicera en sida i WordPress.

Dessutom, om du vill förnya en sida och förbättra den, om du börjar redigera den befintliga sidan, istället för att göra en dubblett, har du ingen jämförelsepunkt. Oavsett varför du behöver duplicera en sida i WordPress, finns det ett par sätt du kan göra.

Hanterad WordPress-värd ger en robust och effektiv miljö för att driva en WordPress-webbplats, att duplicera en sida utan ett plugin är en enkel manuell uppgift.

Båda delarna är en del av en bredare strategi för att effektivt hantera och underhålla en WordPress-webbplats, med managed hosting som erbjuder ett skyddsnät som kompletterar manuella webbplatshanteringsuppgifter som sidduplicering.

Kopiera en WordPress-sida utan plugins

Om du inte vill använda ett plugin för att kopiera en WordPress-sida kan du försöka ändra några koda.

Lite kodning

Inga bekymmer om du inte är en kodningsguru (mycket få av oss är det). Du kan duplicera WordPress-sidor genom att göra lite kodning, och det är inte så svårt. Vi kommer att förse dig med koden här, så du behöver bara kopiera och klistra in den. Låt oss förklara hur man gör detta.

Åtkomst till Functions.php-filen

För att duplicera en sida utan ett plugin, måste du komma åt "functions.php"-filen via kodningsmetoden. Det finns två huvudsakliga metoder som du kan använda för att komma åt filen functions.php.

Den första metoden är att använda FTP-klienten, så du måste först installera FTP Klient. Starta FTP-klienten, klicka på "anslut" och ange ditt användarnamn och lösenord för att ansluta till FTP-värdservern. Du kan sedan komma åt lämplig fil genom att gå till "WordPress Root", sedan "WP Content", sedan "Themes," sedan "Current Themes", och du kommer äntligen till functions.php. Du kan sedan ladda ner filen, redigera den efter behov och ladda upp den till rätt plats igen.

Den andra metoden får åtkomst till functions.php-filen. Du kan göra ändringar i koden genom att logga in på WordPress som admin, gå sedan till utseenderedigeraren i sidofältet, välj det tema du vill redigera och välj sedan temafunktionen (functions.php), som finns under " temafiler" i avsnittet "mallar". Du kan nu göra ändringar i koden, och när du är klar trycker du helt enkelt på knappen "Uppdatera".

Nu vet du hur du kommer åt filen functions.php så att du kan göra ändringar i koden utan ett plugin; det primära målet är att duplicera en sida. Nästa steg är att ange lämplig kod som sedan kommer att duplicera sidan. Oroa dig inte om du inte kan mycket om kodning eftersom vi har inkluderat den nödvändiga koden som du bara kan kopiera och klistra in.

/* * Funktion för efterduplicering.  Dups visas som utkast.  Användaren omdirigeras till redigeringsskärmen */ function rd_duplicate_post_as_draft(){ global $wpdb; om (!  ( isset( $_GET['post']) || isset( $_POST['post']) || ( isset($_REQUEST['action']) && 'rd_duplicate_post_as_draft' == $_REQUEST['action'] ) ) ) { wp_die('Inget inlägg att duplicera har tillhandahållits!'); } /* * Nonce verification */ if ( !isset( $_GET['duplicate_nonce'] ) || !wp_verify_nonce( $_GET['duplicate_nonce'], basename( __FILE__ ) ) ) returnera; /* * få det ursprungliga inläggets id */ $post_id = (isset($_GET['post']) ?  absint( $_GET['post'] ): absint( $_POST['post'] ) ); /* * och alla ursprungliga inläggsdata sedan */ $post = get_post( $post_id ); /* * om du inte vill att den nuvarande användaren ska vara den nya inläggsförfattaren, * ändra sedan nästa par rader till detta: $new_post_author = $post->post_author; */ $current_user = wp_get_current_user(); $new_post_author = $current_user->ID; /* * om inläggsdata finns, skapa postdupliceringen */ 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' => 'utkast', 'post_title' => $post->post_title, 'post_type ' => $post->post_type, 'to_ping' => $post->to_ping, 'menu_order' => $post->menu_order ); /* * infoga inlägget med funktionen wp_insert_post() */ $new_post_id = wp_insert_post( $args ); /* * hämta alla aktuella posttermer och ställ in dem till det nya postutkastet */ $taxonomies = get_object_taxonomies($post->post_type); // returnerar array av taxonominamn för posttyp, ex array("category", "post_tag"); foreach ($taxonomies som $taxonomie) { $post_terms = wp_get_object_terms($post_id, $taxonomie, array('fields' => 'sniglar')); wp_set_object_terms($new_post_id, $post_terms, $taxonomi, false); } /* * duplicera alla inläggsmeta bara i två SQL-frågor */ $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 I $wpdb->postmeta (post_id, meta_key, meta_value) "; foreach ($post_meta_infos som $meta_info) { $meta_key = $meta_info->meta_key; if( $meta_key == '_wp_old_slug' ) fortsätt; $meta_value = addslashes($meta_info->meta_value); $sql_query_sel[]= "VÄLJ $new_post_id, '$meta_key', '$meta_value'"; } $sql_query.= implode(" UNION ALL", $sql_query_sel); $wpdb->query($sql_query); } /* *, slutligen, omdirigera till skärmen för redigering av inlägg för det nya utkastet */ wp_redirect( admin_url( 'post.php?action=edit&post=' .  $new_post_id ) ); utgång; } else { wp_die('Inlägget misslyckades, kunde inte hitta originalinlägget: ' .  $post_id); } } add_action( 'admin_action_rd_duplicate_post_as_draft', 'rd_duplicate_post_as_draft' ); /* * Lägg till dubblettlänken till åtgärdslistan för post_row_actions */ function rd_duplicate_post_link( $actions, $post ) { if (current_user_can('edit_posts')) { $actions['duplicate'] = '  wp_nonce_url('admin.php?action=rd_duplicate_post_as_draft&post=' .  $post->ID, basename(__FILE__), 'duplicate_nonce' ) . 

Om du bara vill duplicera ett inlägg, inte en sida, ersätt då den sista raden med:

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

Slutsats

Du vet nu hur du kopierar en WordPress-sida utan plugins. Som du kan se är det bara två steg inblandade. Öppna först functions.php-filen, kopiera och klistra in den koden i filen och uppdatera den sedan. Så enkelt är det, och när du är klar kommer du att ha en exakt dubblett av din ursprungliga sida.

    0 kommentarer

    Ingen kommentar.