Wie kopiere oder dupliziere ich einen Beitrag mit der WordPress Command Line Interface WP-CLI?

Ich weiß, dass ich einen Beitrag mit mehreren Plugins klonen oder duplizieren kann. Der, den ich am häufigsten benutze, ist https://wordpress.org/plugins/duplicate-post/ . Allerdings benutze ich die WP-CLI in letzter Zeit immer mehr und ich würde gerne in der Lage sein, einen Post von der Kommandozeile zu duplizieren oder zu klonen.

Irgendwelche Vorschläge würden geschätzt werden.

Solutions Collecting From Web of "Wie kopiere oder dupliziere ich einen Beitrag mit der WordPress Command Line Interface WP-CLI?"

Das Klonen eines Posts über wp-cli ist etwas komplizierter. Es benötigt zwei Schritte:

  1. Erstellen Sie eine Datei, in der die Informationen des Posts gespeichert werden. Angenommen, der folgende Befehl erstellt eine Datei namens file.txt aus hello post (id 1). In diesem Fall Datei.txt, die im Stammverzeichnis speichern.

    wp post get 1 > file.txt

  2. Erstellen Sie einen neuen Beitrag aus dieser Datei. In unserem Szenario file.txt gespeichert alle Informationen von hello Post. Folgender Befehl erstellt einen Post namens duplicate

    wp post create ./file.txt --post_title="duplicate"

Vielen Dank für Ihre Antwort und @Mrinal und bestätigen, dass es mit einer Pipe @ Tfrangio arbeiten würde.

Ich war auch daran interessiert, die Meta-Werte von einem Post zum anderen zu kopieren, also nach dem Erstellen des Posts mit dem Duplikat mit der Pipe:

 wp post get 6815 --field=content | wp post create - --post_title="Title of dup" --post_status='draft' 

Nachdem ich die ID des neuen Posts bekommen habe, habe ich die meta_keys übergeben, an denen ich interessiert war …

Angenommen 14 ist die Quelle post_ID und 21 das Ziel post_ID, ich möchte tie_hide_related und tie_sidebar_pos :

 for meta_key in tie_hide_related tie_sidebar_pos ; \ do wp post meta get 14 $meta_key | \ xargs wp post meta update 21 $meta_key \ ; done 

xargs wird benötigt, um den von post-meta-get zurückgegebenen Wert an wp post-meta update weiterzuleiten, selbst wenn die Dokumentation sagt, dass es von stdin liest , ohne xargs werden einzelne Werte als eine Ein-Objekt-Liste gelesen, wodurch sich das Verhalten der Wert

Um dann die Bedingungen einer Taxonomie zu kopieren, sagen wir category :

  for cat_id in `wp post term list 14 category --format=ids` ; \ do wp post term add 21 category $cat_id --by=id ; done 

Dieser letzte Schritt könnte für mehrere Taxonomien wiederholt werden.