Finden Sie die neueste / veröffentlichte Version von Post mit wp-cli

 wp --ssh = barrycar @ bc4 --pfad = public_html / wordpress --felder = ID, post_titel, post_name, post_datum, post_status, post_author, post_parent, post_type, filter, guid, menu_order, post_content --format = yaml-post-liste

Ich habe den obigen Befehl benutzt, um alle Beiträge in meinem WordPress-Blog herunterzuladen. Ich würde gerne wissen, welche Version eines bestimmten Beitrags auf der Website live ist. Relevanter Teil der YAML-Ausgabe:

 -
   ID: 22371
   post_title: Albuquerque Straßennamen
   post_name: 13019-revision-4
   post_date: 2012-03-06 03:00:53
   post_status: erben
   post_author: 2
   post_parent: 13019
   post_type: post
   Filter: roh
   guid: http://wordpress.barrycarter.org/index.php/2012/03/06/13019-revision-4/
   menu_order: 0
   post_content: [...]
 -
   ID: 22370
   post_title: Albuquerque Straßennamen
   post_name: 13019-revision-4
   post_date: 2011-11-24 16:47:32
   post_status: erben
   post_author: 2
   post_parent: 13019
   post_type: post
   Filter: roh
   guid: http://wordpress.barrycarter.org/index.php/2011/11/24/13019-revision-4/
   menu_order: 0
   post_content: [...]
 - 
   ID: 13019
   post_title: Albuquerque Straßennamen
   post_name: Albuquerque-Straßennamen
   Post_Datum: 2011-09-03 03:38:21
   post_status: veröffentlichen
   post_author: 2
   post_parent: 0
   post_type: post
   Filter: roh
   GUID: http://wordpress.barrycarter.org/?p=13019
   menu_order: 0
   post_content: [...]

Wenn ich raten müsste, würde ich sagen, dass ID 22371 die Version ist, die auf der Site live ist, weil:

  • Es hat die höchste ID der drei

  • Es verbindet die höchste “Revision” (Revision-4) der drei

  • Es hat das neueste post_date der drei

Dies scheint jedoch indirekt zu sein. Was ist die richtige Art zu finden, welche ist die aktuell veröffentlichte Version? Verwandte Fragen:

  • Welcher Filter gibt mir nur live aktuelle Beiträge? --post-status=publish scheint, als würde es mir die erste Version jedes --post-status=publish geben.

  • Warum gibt es zum Beispiel zwei 13019-revision-4 und keine 13019-revision-3 oder 13019-revision-2?

Solutions Collecting From Web of "Finden Sie die neueste / veröffentlichte Version von Post mit wp-cli"

Bei Beantwortung meiner eigenen Frage hat die aktuelle Revision diese Eigenschaften im Vergleich zu Revisionen:

  • Der post_status wird “publish” nicht “erben”.
  • Der post_parent wird 0 sein
  • Der post_type wird “post” nicht “revision” sein.

Darüber hinaus ändert sich die ID der aktuellen Revision nicht, wenn Sie den Post aktualisieren. stattdessen erhält die ältere Version eine neue ID.

Beispiel:

  • Ich habe einen Beitrag namens “test post” mit dem Inhalt “this is revision one” erstellt. Es wurde ID 28623 zugewiesen. Als ich “wp post get 28623” machte, war der interessante Teil der Ausgabe:
 ID 28623 post_date 2017-12-13 16:26:02 post_content this is revision one. post_title test post post_status publish comment_status open ping_status open post_name test-post post_modified 2017-12-13 16:26:02 post_parent 0 post_type post 
  • Ich habe dann den Inhalt bearbeitet, um “das ist Revision zwei” zu lesen und habe “wp post get 28623” noch einmal gemacht. Die Ergebnisse dieses Mal:
 ID 28623 post_date 2017-12-13 16:26:02 post_content this is revision two. post_title test post post_status publish comment_status open ping_status open post_name test-post post_modified 2017-12-13 16:28:47 post_parent 0 post_type post 

Beachten Sie, dass die Beitrags-ID 28623 selbst Felder geändert hat, und die Live-Version, wenn ID 28623 noch vorhanden ist. Das post_date bleibt unverändert, aber post_modified hat sich geändert.

Was ist mit der alten Version passiert? Ich habe “wp post get 28624”. Die Ergebnisse:

 ID 28624 post_date 2017-12-13 16:26:02 post_content this is revision one. post_title test post post_status inherit comment_status closed ping_status closed post_name 28623-revision-v1 post_modified 2017-12-13 16:26:02 post_parent 28623 post_type revision 

Die alte Version wurde in eine neue Zeile in der database kopiert. Beachten Sie, dass es keine Garantie gibt, dass die ID der ID direkt auf die ID des ursprünglichen Beitrags folgt: wordpress verwendet einfach die nächste verfügbare ID (in meinem Fall funktionierte das, weil ich zwischen Post und Revision keine Posts verfasste).

  • Zusätzlich:

    • Der post_status ist jetzt “erben”, nicht “veröffentlichen”

    • Der post_type ist “revision” nicht “post”

    • Der post_parent ist 28623, nicht 0

    • post_name wurde in “28623-revision-v1” anstelle von “test-post” geändert und verweist nicht mehr auf den Titel. Wenn der ursprüngliche Post auf “(etwas) / Test-Post” ist, könnten Sie versucht sein, “(etwas) / 28623-revision-v1” zu besuchen, um die Revision zu sehen. WordPress wird jedoch den Fehler “Seite nicht gefunden” verursachen, da Endbenutzer keine Änderungen sehen können.

    • post_modified ist immer noch gleich post_date, da dies die ursprüngliche Version war

    • “comment_status” und “ping_status” sind nun geschlossen, da es keinen Sinn macht, eine Revision zu kommentieren oder zu pingen. Bei Live-Posts können diese natürlich auch beide “geschlossen” sein. Wenn Sie jedoch Kommentare / Pings für einen Post zulassen, wird diese Berechtigung für ältere Revisionen automatisch entfernt.

  • Ich kehrte dann auf die ursprüngliche Version zurück und habe “wp post get 28623” erhalten:

 ID 28623 post_author 1 post_date 2017-12-13 16:26:02 post_content this is revision one. post_title test post post_status publish comment_status open ping_status open post_name test-post post_modified 2017-12-13 16:46:20 post_type post 

Beachten Sie, dass der Post jetzt mit einer Ausnahme auf die ursprüngliche Version zurückgekehrt ist: Das post_modified-Datum stimmt nicht mehr mit dem post_date überein. Mit anderen Worten, wenn Sie einen Beitrag ändern und dann zurück ändern, wird dies als zwei Änderungen angesehen, nicht als Rückgängigmachen einer Änderung (Sie können dies in der Admin-Oberfläche sehen, wenn Sie bemerken, dass die Zählung “Revisionen” jetzt 3 ist, nicht 1 oder 2) ).

Eine andere Möglichkeit, dies zu sehen, ist “wp post get 28624”:

 ID 28624 post_date 2017-12-13 16:26:02 post_content this is revision one. post_title test post post_status inherit comment_status closed ping_status closed post_name 28623-revision-v1 post_modified 2017-12-13 16:26:02 post_parent 28623 post_type revision 

Beachten Sie, dass, obwohl wir auf Version 1 zurückgekehrt sind, eine separate Kopie von Version 1 als Revision existiert. Version 2 erhielt eine neue ID, wie wir sehen, indem wir “wp post get 28625” machen.

 ID 28625 post_date 2017-12-13 16:28:47 post_content this is revision two. post_title test post post_status inherit comment_status closed ping_status closed post_name 28623-revision-v1 post_modified 2017-12-13 16:28:47 post_modified_gmt 2017-12-13 16:28:47 post_parent 28623 post_type revision