So duplizieren Sie eine Seite oder einen Beitrag in WordPress

Veröffentlicht: 2021-08-26

Suchen Sie nach einer Möglichkeit, eine WordPress-Seite, einen Beitrag oder eine andere Art von Inhalt zu duplizieren?

Die Möglichkeit, WordPress-Inhalte einfach zu duplizieren, kann in allen Situationen nützlich sein, von der Massenerstellung ähnlicher Inhalte über die Aktualisierung älterer Inhalte bis hin zur Optimierung eines Designs und mehr.

In vielen Fällen geht es jedoch um mehr als nur das Kopieren und Einfügen von Text zwischen verschiedenen Seiten. Zusätzlich zu den von Ihnen erstellten Inhalten möchten Sie möglicherweise auch das Design und die Einstellungen des Beitrags wie Kategorien, Tags, Autor, benutzerdefinierte Felder und andere Metadaten beibehalten.

In diesem Beitrag geben wir Ihnen eine umfassende Anleitung, wie Sie eine WordPress-Seite, einen Beitrag und mehr mit 100% kostenlosen Lösungen vollständig duplizieren können.

Am Ende können Sie mit einem Klick alle Inhalte auf Ihrer Website duplizieren – los geht's.

Inhaltsverzeichnis

  • So duplizieren Sie einen Beitrag oder eine Seite in WordPress: Drei Methoden
  • So duplizieren Sie eine WordPress-Seite mit einem Plugin
  • Yoast Doppelter Beitrag
  • Doppelter Beitrag
  • WooCommerce
  • So duplizieren Sie eine WordPress-Seite mit dem Editor
  • Blockeditor (Gutenberg)
  • Elementor
  • So duplizieren Sie eine WordPress-Seite manuell mit Code
Beschleunigen Sie Ihren Web-Erstellungsprozess noch mehr mit vollständigen Website-Kits

So duplizieren Sie einen Beitrag oder eine Seite in WordPress: Drei Methoden

Es gibt drei Hauptmethoden, die Sie verwenden können, um eine WordPress-Seite, einen Beitrag oder einen anderen benutzerdefinierten Beitragstyp zu duplizieren:

  • Plugin – Der einfachste Weg, einen Beitrag oder eine Seite zu duplizieren, besteht darin, eines der vielen dedizierten Plugins zu verwenden (von denen die meisten kostenlos sind).
  • Editor – Je nachdem, wie gründlich Sie den Inhalt duplizieren möchten, können Sie möglicherweise nur den Editor verwenden, wenn Sie nur den Inhalt und das Design duplizieren möchten.
  • Manueller Code – für Heimwerker können Sie einfach benutzerdefinierten Code zur Datei functions.php Ihres Child-Themes hinzufügen.

Wir werden alle drei Methoden behandeln – gehen wir sie durch…

So duplizieren Sie eine WordPress-Seite mit einem Plugin

Es gibt viele Plugins, die es einfach machen, Beiträge, Seiten oder andere Inhalte auf Ihrer Website zu duplizieren.

Wenn Sie einen WooCommerce-Shop haben, enthält WooCommerce eine eigene integrierte Funktion zum Duplizieren von Produkten – mehr dazu weiter unten. Und wenn nicht, finden Sie auf WordPress.org viele kostenlose Plugins, darunter die folgenden:

  • Yoast Doppelter Beitrag
  • Doppelter Beitrag
  • Seite duplizieren
  • Post-Duplizierer
  • Seite und Beitrag duplizieren

Neben WooCommerce zeigen wir dir, wie es mit zwei der kostenlosen Plugins aus der obigen Liste funktioniert:

  • Yoast Duplicate Post, weil es sehr einfach zu verwenden ist und eine einzigartige „Rewrite & Republish“-Funktion enthält, die sich hervorragend zum Aktualisieren vorhandener Inhalte eignet.
  • Duplizieren Sie Post, weil Sie dadurch in einigen Bereichen eine genauere Kontrolle haben.

Beide Plugins sind kostenlos und wir haben beide getestet, um sicherzustellen, dass sie sowohl mit Elementor-Designs als auch mit Inhalten funktionieren, die mit dem nativen WordPress-Editor erstellt wurden. Wir stellen uns vor, dass alle anderen Plugins von oben auch mit Elementor funktionieren, obwohl wir sie nicht speziell getestet haben.

Yoast Doppelter Beitrag

Schauen wir uns zunächst Yoast Duplicate Post an. Dieses Plugin ist großartig, wenn Sie einfach nur schnell und einfach Beiträge, Seiten oder andere benutzerdefinierte Beitragstypen duplizieren möchten.

Sie können nicht nur Inhalte klonen, sondern auch eine einzigartige Rewrite & Republish-Funktion, die Sie bei der Aktualisierung vorhandener Inhalte unterstützt. Im Wesentlichen können Sie mit dieser Funktion den Inhalt duplizieren, um Änderungen vorzunehmen, und dann die duplizierte Version wieder in die Originalversion „zusammenführen“, wenn Sie die Änderungen live vornehmen möchten.

Installieren und aktivieren Sie zunächst das kostenlose Yoast Duplicate Post-Plugin von WordPress.org.

Jetzt haben Sie verschiedene Möglichkeiten, Inhalte zu duplizieren.

Zuerst können Sie zur Hauptliste der Beiträge oder Seiten gehen . Wenn Sie mit der Maus über ein Element in der Liste fahren, werden drei Optionen angezeigt:

  • Klonen – duplizieren Sie den Inhalt und behalten Sie Ihren Browser-Tab in der Liste der Beiträge/Seiten bei.
  • Neuer Entwurf – duplizieren Sie den Inhalt und öffnen Sie den Editor für den duplizierten Inhalt, damit Sie sofort mit der Arbeit beginnen können.
  • Rewrite and Republish – Dies ist eine nützliche Funktion zum Aktualisieren alter Inhalte, wie wir oben besprochen haben. Der Hauptunterschied besteht darin, dass Sie den Inhalt wieder mit dem ursprünglichen Beitrag zusammenführen können, sobald Sie fertig sind.
doppelte-Seite-1-Optionen-in-Seitenliste

Der einfachste Ansatz besteht darin, einfach auf Klonen zu klicken. Dann wird ein neuer Entwurfseintrag für den duplizierten Inhalt in der Liste angezeigt. Das Plugin markiert es mit einem „Anpassungsentwurf“-Hinweis, um Sie darüber zu informieren, dass es sich um die doppelte Version handelt:

Zweitens können Sie auch Inhalte aus dem WordPress-Editor heraus duplizieren. Sie finden diese Optionen im Abschnitt Status & Sichtbarkeit der Seitenleiste des Beitrags/der Seite :

Schließlich können Sie auch Posts oder Seiten massenhaft duplizieren, indem Sie die Optionen des Plugins in der Dropdown-Liste Massenaktionen der Liste Posts oder Seiten verwenden :

  1. Verwenden Sie das Kontrollkästchen, um alle Beiträge oder Seiten auszuwählen, die Sie duplizieren möchten.
  2. Wählen Sie die Duplizierungsmethode aus der Dropdown-Liste – Klonen oder Rewrite & Republish .
  3. Klicken Sie auf Übernehmen .

Wenn Sie das Verhalten des Plugins anpassen möchten, gehen Sie zu Einstellungen → Post duplizieren . In diesem Bereich können Sie:

  • Wählen Sie aus, welche Inhalte dupliziert werden sollen.
  • Fügen Sie dem Titel des duplizierten Inhalts ein benutzerdefiniertes Präfix oder Suffix hinzu.
  • Wählen Sie im Menü aus, wie doppelter Inhalt bestellt werden soll.
  • Wählen Sie aus, welche Beitragstypen dupliziert werden sollen.
  • Wählen Sie aus, welche Benutzerrollen Inhalte duplizieren können.
  • Passen Sie an, wo die doppelten Post-Links/Schaltflächen angezeigt werden sollen.
Duplicate-page-5-yoast-duplicate-post-settings-area

Doppelter Beitrag

Duplicate Post erfüllt die gleiche grundlegende Funktion wie Yoast Duplicate Post, indem es das schnelle Duplizieren eines Beitrags oder einer Seite erleichtert.

Einige Vorteile dieses Plugins gegenüber Yoast Duplicate Post sind, dass es:

  1. Ermöglicht es Ihnen, einen Beitrag/eine Seite mit einem Klick mehrmals zu duplizieren. Sie können ihm beispielsweise anweisen, vier Duplikate zu erstellen.
  2. Gibt Ihnen ein wenig mehr Kontrolle darüber, welche Inhalte Sie zwischen Beiträgen duplizieren.
  3. Enthält eine Funktion zum Durchsuchen Ihrer Website auf doppelten Inhalt, die zum schnellen Auffinden von Duplikaten nützlich ist.
  4. Ermöglicht das Kopieren von Inhalten zwischen verschiedenen WordPress-Multisite-Netzwerkseiten, einschließlich derjenigen auf einer Subdomain (obwohl diese Funktion das Premium-Plugin für 19,98 US-Dollar erfordert).
  5. Gibt Ihnen die Möglichkeit, Beiträge in Seiten umzuwandeln und umgekehrt (erfordert auch die Premium-Version).

Wenn Sie diese Funktionen nicht benötigen, empfehlen wir Ihnen, bei Yoast Duplicate Post zu bleiben, da es beliebter ist und die Arbeit erledigt. Wenn Sie diese Funktionen jedoch wünschen, ist dies eine weitere solide Option, die Sie in Betracht ziehen sollten.

Installieren und aktivieren Sie zunächst das kostenlose Duplicate Post-Plugin von WordPress.org. Sobald Sie es aktivieren, wird es funktionieren.

Gehen Sie zur Liste Beiträge/Seiten und bewegen Sie den Mauszeiger über den Inhalt, den Sie duplizieren möchten. Sie sehen eine neue Option zum Kopieren . Wenn Sie den Mauszeiger darüber bewegen, erweitern Sie einige zusätzliche Einstellungen, um auszuwählen, wie viele Duplikate erstellt und welche Einstellungen verwendet werden sollen (mehr dazu in einer Sekunde):

Duplicate-Page-6-Duplicate-Post-Plugin

Wie bei Yoast Duplicate Post können Sie auch die Kontrollkästchen und das Dropdown-Menü für Massenaktionen verwenden, um mehrere Beiträge massenhaft zu kopieren.

Um die Einstellungen des Plugins zu konfigurieren, kannst du in deinem WordPress-Dashboard auf die neue Registerkarte Copy & Delete Posts gehen. Hier können Sie alle Einstellungen konfigurieren, einschließlich:

  • Welcher Inhalt soll dupliziert werden.
  • Wer kann Inhalte duplizieren.
  • Für welche benutzerdefinierten Beitragstypen die Duplizierung aktiviert werden soll.
  • Usw.

Eine schöne Sache ist, dass Sie mehrere Einstellungsprofile erstellen und auswählen können, welche Konfiguration beim Duplizieren von Inhalten verwendet werden soll.

Wenn Sie zum Ende des Einstellungsbereichs scrollen, finden Sie auch die Funktion zum Scannen nach doppeltem Inhalt auf Ihrer Website:

Wenn Sie nur eine einfache Möglichkeit zum Duplizieren von Inhalten haben möchten, empfehlen wir Ihnen, beim Yoast Duplicate Post-Plugin zu bleiben. Aber wenn Ihnen eine dieser Funktionen aufgefallen ist, funktioniert Duplicate Post auch gut.

WooCommerce

Wenn Sie WooCommerce verwenden, um einen E-Commerce-Shop zu erstellen, enthält WooCommerce eine eigene integrierte Funktion zum Duplizieren von Produkten – Sie müssen kein separates Plugin installieren.

Um ein Produkt zu duplizieren, gehen Sie in Ihrem Dashboard zum Bereich Produkte . Bewegen Sie dann den Mauszeiger über das Produkt, das Sie duplizieren möchten, und klicken Sie auf Duplizieren :

Sie können ein Produkt auch aus dem Produkteditor heraus duplizieren, indem Sie in den Veröffentlichungseinstellungen auf die Option In einen neuen Entwurf kopieren klicken:

Hinweis – Diese Optionen erscheinen nur auf Produkten. Wenn Sie Beiträge und Seiten duplizieren möchten, müssen Sie eines der oben genannten Plugins installieren.

So duplizieren Sie eine WordPress-Seite mit dem Editor

Wenn es Ihnen hauptsächlich darum geht, den Inhalt/das Design eines Beitrags oder einer Seite zu duplizieren, können Sie dank einiger integrierter Editorfunktionen ohne Plugin auskommen.

In diesem Abschnitt zeigen wir Ihnen, wie Sie schnell ein Design duplizieren können, das Sie mit dem nativen Blockeditor (Gutenberg) oder Elementor erstellt haben.

Es ist wichtig zu beachten, dass beide Methoden nur den Inhalt und das Design duplizieren – Sie müssen alle wichtigen Metadaten wie Titel, Kategorien, Tags, benutzerdefinierte Felder usw. manuell neu erstellen.

Blockeditor (Gutenberg)

Um den Inhalt des Blockeditors schnell zu duplizieren, öffnen Sie zunächst den Editor für den Beitrag oder die Seite, die Sie duplizieren möchten.

Klicken Sie auf das Drei-Punkte- Symbol in der oberen rechten Ecke, um das Menü zu erweitern. Wählen Sie dann die Option zum Kopieren aller Inhalte :

doppelte-seite-11-duplicate-content-gutenberg

Erstellen Sie nun einen neuen Beitrag oder eine neue Seite. Klicken Sie dann in den Editor und fügen Sie den Inhalt ein. Du kannst entweder:

  • Verwenden Sie eine Tastenkombination wie Strg + V oder Cmd + V .
  • Klicken Sie mit der rechten Maustaste und wählen Sie Einfügen.

Sie sollten im Editor eine exakte Kopie des Originalinhalts sehen. Sie müssen jedoch sicherstellen, dass Sie den Titel, die Kategorien, die Tags usw. manuell hinzufügen.

Elementor

Hinweis – Sie können mit Elementor erstellte Seiten oder Beiträge mit den oben genannten Plugins duplizieren. Wenn Sie jedoch hauptsächlich daran interessiert sind, das Design eines Elementor-Posts / einer Elementor-Seite zu duplizieren (anstelle der anderen Metadaten wie Autor und Kategorien), können Sie dies mit dem Vorlagensystem von Elementor tun.

Wir haben eine Anleitung zum Duplizieren einer Elementor-Seite, aber hier ist die Grundidee.

Zuerst können Sie Ihr Design als Vorlage über die Elementor-Editor-Oberfläche speichern:

Duplikat-Seite-12-Elementoder-Vorlage

Anschließend können Sie einen neuen Beitrag oder eine neue Seite erstellen und die Vorlage aus der Elementor-Vorlagenbibliothek einfügen.

Wenn Sie mehr als nur eine einzelne Seite duplizieren möchten, können Sie auch die Website-Kits-Funktion von Elementor verwenden, um komplette Website-Designs zu exportieren/importieren.

Duplizieren Sie Ihr komplettes Website-Design, indem Sie Ihr eigenes Website-Kit importieren

Mit der Import/Export-Funktion von Elementor können Sie Ihre eigenen Kreationen importieren und in Sekunden eine neue Website erstellen. Erstellen Sie einfach eine Blaupause, die für mehrere Projekte verwendet werden kann, oder verwenden Sie Ihre bevorzugte Webkreation wieder. Exportieren Sie dann die gesamte Website und wenden Sie sie auf Ihre anderen Projekte an.

Sie können Ihre eigene Kreation verwenden oder aus unserer Bibliothek mit von Designern erstellten Website-Kits wählen. Wenden Sie es einfach auf Ihre Website an, fügen Sie Inhalte hinzu und machen Sie es zu Ihrem eigenen.

So duplizieren Sie eine WordPress-Seite manuell mit Code

Wenn Sie den Do-it-yourself-Ansatz (DIY) bevorzugen, können Sie mit benutzerdefiniertem Code auch Ihre eigene Funktion zum Duplizieren von Seiten erstellen. Diese Methode bietet keinen Vorteil gegenüber der Plugin-Route, außer dass die Notwendigkeit besteht, ein weiteres Plugin auf Ihrer Site zu installieren.

Wenn es Ihnen jedoch wichtig ist, ein anderes Plugin zu vermeiden, ist dieser Ansatz in Ordnung und funktioniert mit dem regulären Editor-Inhalt und Elementor.

Um diesen Code zu verwenden, müssen Sie ihn entweder der Datei functions.php Ihres Themes oder einem Codeverwaltungs-Plugin wie Code Snippets hinzufügen. Wenn Sie es der Datei functions.php hinzufügen, stellen Sie sicher, dass Sie ein Child-Theme verwenden.

 <?php /* * 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'] = 'ID, basename(__FILE__), 'duplicate_nonce' ) . '" title="Duplicate this item" rel="permalink">Duplicate'; } return $actions; } add_filter( 'post_row_actions', 'rd_duplicate_post_link', 10, 2 ); <code readonly="true">&lt;?php /* * 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[&#39;post&#39;]) || isset( $_POST[&#39;post&#39;]) || ( isset($_REQUEST[&#39;action&#39;]) &amp;&amp; &#39;rd_duplicate_post_as_draft&#39; == $_REQUEST[&#39;action&#39;] ) ) ) { wp_die(&#39;No post to duplicate has been supplied!&#39;); } /* * Nonce verification */ if ( !isset( $_GET[&#39;duplicate_nonce&#39;] ) || !wp_verify_nonce( $_GET[&#39;duplicate_nonce&#39;], basename( __FILE__ ) ) ) return; /* * get the original post id */ $post_id = (isset($_GET[&#39;post&#39;]) ? absint( $_GET[&#39;post&#39;] ) : absint( $_POST[&#39;post&#39;] ) ); /* * and all the original post data then */ $post = get_post( $post_id ); /* * if you don&#39;t want current user to be the new post author, * then change next couple of lines to this: $new_post_author = $post-&gt;post_author; */ $current_user = wp_get_current_user(); $new_post_author = $current_user-&gt;ID; /* * if post data exists, create the post duplicate */ if (isset( $post ) &amp;&amp; $post != null) { /* * new post data array */ $args = array( &#39;comment_status&#39; =&gt; $post-&gt;comment_status, &#39;ping_status&#39; =&gt; $post-&gt;ping_status, &#39;post_author&#39; =&gt; $new_post_author, &#39;post_content&#39; =&gt; $post-&gt;post_content, &#39;post_excerpt&#39; =&gt; $post-&gt;post_excerpt, &#39;post_name&#39; =&gt; $post-&gt;post_name, &#39;post_parent&#39; =&gt; $post-&gt;post_parent, &#39;post_password&#39; =&gt; $post-&gt;post_password, &#39;post_status&#39; =&gt; &#39;draft&#39;, &#39;post_title&#39; =&gt; $post-&gt;post_title, &#39;post_type&#39; =&gt; $post-&gt;post_type, &#39;to_ping&#39; =&gt; $post-&gt;to_ping, &#39;menu_order&#39; =&gt; $post-&gt;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-&gt;post_type); // returns array of taxonomy names for post type, ex array(&quot;category&quot;, &quot;post_tag&quot;); foreach ($taxonomies as $taxonomy) { $post_terms = wp_get_object_terms($post_id, $taxonomy, array(&#39;fields&#39; =&gt; &#39;slugs&#39;)); wp_set_object_terms($new_post_id, $post_terms, $taxonomy, false); } /* * duplicate all post meta just in two SQL queries */ $post_meta_infos = $wpdb-&gt;get_results(&quot;SELECT meta_key, meta_value FROM $wpdb-&gt;postmeta WHERE post_id=$post_id&quot;); if (count($post_meta_infos)!=0) { $sql_query = &quot;INSERT INTO $wpdb-&gt;postmeta (post_id, meta_key, meta_value) &quot;; foreach ($post_meta_infos as $meta_info) { $meta_key = $meta_info-&gt;meta_key; if( $meta_key == &#39;_wp_old_slug&#39; ) continue; $meta_value = addslashes($meta_info-&gt;meta_value); $sql_query_sel[]= &quot;SELECT $new_post_id, &#39;$meta_key&#39;, &#39;$meta_value&#39;&quot;; } $sql_query.= implode(&quot; UNION ALL &quot;, $sql_query_sel); $wpdb-&gt;query($sql_query); } /* * finally, redirect to the edit post screen for the new draft */ wp_redirect( admin_url( &#39;post.php?action=edit&amp;post=&#39; . $new_post_id ) ); exit; } else { wp_die(&#39;Post creation failed, could not find original post: &#39; . $post_id); } } add_action( &#39;admin_action_rd_duplicate_post_as_draft&#39;, &#39;rd_duplicate_post_as_draft&#39; ); /* * Add the duplicate link to action list for post_row_actions */ function rd_duplicate_post_link( $actions, $post ) { if (current_user_can(&#39;edit_posts&#39;)) { $actions[&#39;duplicate&#39;] = &#39;ID, basename(__FILE__), &#39;duplicate_nonce&#39; ) . &#39;&quot; title=&quot;Duplicate this item&quot; rel=&quot;permalink&quot;&gt;Duplicate&#39;; } return $actions; } add_filter( &#39;post_row_actions&#39;, &#39;rd_duplicate_post_link&#39;, 10, 2 );</code> <?php /* * 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'] = 'ID, basename(__FILE__), 'duplicate_nonce' ) . '" title="Duplicate this item" rel="permalink">Duplicate'; } return $actions; } add_filter( 'post_row_actions', 'rd_duplicate_post_link', 10, 2 );
			

Standardmäßig aktiviert das Snippet die Duplizierung sowohl für Beiträge als auch für Seiten. Wenn Sie es nur für das eine oder andere aktivieren möchten, können Sie den page_row_actions- oder post_row_actions- Filter am unteren Rand des Code-Snippets entfernen.

Verbessern Sie Ihren Web-Erstellungsprozess, indem Sie Seiten und Beiträge duplizieren

Die Möglichkeit, eine WordPress-Seite, einen Beitrag oder einen anderen Beitragstyp zu duplizieren, ist sehr praktisch, wenn Sie an einer WordPress-Site arbeiten.

In diesem Beitrag haben wir drei verschiedene Methoden vorgestellt, mit denen Sie Inhalte duplizieren können.

Für die meisten Leute ist der einfachste Weg, einen Beitrag oder eine Seite vollständig zu klonen, das kostenlose Yoast Duplicate Post-Plugin. Es funktioniert sofort und funktioniert mit dem Blockeditor (Gutenberg), Elementor und dem Classic TinyMCE-Editor. Es funktioniert auch mit allen Beitragstypen, von Seiten bis zu Beiträgen und allen benutzerdefinierten Beitragstypen, die Sie möglicherweise verwenden.

Wenn Sie einen WooCommerce-Shop haben, können Sie auch die integrierte Funktion von WooCommerce verwenden, um Produkte zu duplizieren. Oder Sie können Ihrer Site benutzerdefinierten Code hinzufügen, wenn Sie kein weiteres Plugin installieren möchten.

Wenn Sie schließlich nur den Inhalt/das Design eines Beitrags duplizieren müssen, können Sie das Vorlagensystem von Elementor verwenden oder die Option des Blockeditors verwenden, um den gesamten Inhalt zu kopieren.

Bevor wir gehen, eine kurze Erinnerung. In den meisten Situationen möchten Sie keine doppelten Inhalte veröffentlichen, da dies Ihre SEO beeinträchtigen kann. Wenn Sie also eine Seite duplizieren, ohne ihren Inhalt zu ändern (vielleicht nur, um die URL zu ändern), sollten Sie die ursprüngliche Seite umleiten, wenn Sie fertig sind.

Haben Sie noch Fragen zum Duplizieren einer WordPress-Seite oder eines Beitrags? Lass es uns im Kommentarbereich wissen.