Ich habe es überprüft, weil ich es bei der Arbeit machen musste, also habe ich mir eine Notiz gemacht.
Das Ziel WordPress verwendete einen benutzerdefinierten Beitragstyp und ACF, daher war es etwas nervig.
Ich habe beschlossen, WordPress XML, ein WordPress-Import-Tool, aus meinen eigenen CMS-Daten zu erstellen und die Daten zu migrieren.
Wie Sie sehen können, indem Sie die WordPress-Site mit ACF in XML schreiben und nach innen schauen, scheint ACF jedem Feld eine Kennung wie "field_5671e74fc8c5e" zugewiesen zu haben. Dies ist also beim Erstellen von WordPress-XML erforderlich. Das Setup ist also wie folgt.
Die grobe Struktur von XML ist wie folgt.
author
, category
und term
entsprechen dem Benutzer, der Kategorie und dem Begriff von WordPress.
item
enthält nicht nur Artikel und Seiten, sondern auch Bilder und benutzerdefinierte ACF-Felder in item
.
Der Wert des in jedem Artikel registrierten benutzerdefinierten Felds ist in "postmeta" angegeben.
Jedem "Autor", "Kategorie", "Begriff" und "Element" wird eine ID zugewiesen, die für Eltern-Kind-Beziehungen und zur Angabe der im Element definierten Bilder verwendet wird.
Übrigens scheint es, dass "Autor" ohne ihn importiert werden kann.
Das Bild ist als "Artikel" registriert.
Die URL des Bildes ist als untergeordnetes Element mit dem Namen "attach_url" definiert.
Wenn Sie "Element" registrieren, das einen Artikel als übergeordnetes Element darstellt, wird es ordnungsgemäß als Bild importiert, das diesem Artikel zugeordnet ist.
Das benutzerdefinierte Feld des Bildes enthält die ID des im Element definierten Bildes.
Die benutzerdefinierten Felddaten befinden sich in "postmeta", aber wenn es ein Textfeld mit dem Namen "Jahr" gibt, sieht es so aus.
<wp:postmeta>
<wp:meta_key><![CDATA[year]]></wp:meta_key>
<wp:meta_value><![CDATA[2015]]></wp:meta_value>
</wp:postmeta>
<wp:postmeta>
<wp:meta_key><![CDATA[_year]]></wp:meta_key>
<wp:meta_value><![CDATA[field_5670f2bfd2c5a]]></wp:meta_value>
</wp:postmeta>
Um XML für den Import zu erstellen, müssen Sie year
und field_5670f2bfd2c5a
kennen.
Wenn beispielsweise ein sich wiederholendes Feld mit dem Namen "images" vorhanden ist und mehrere Textfelder mit den Namen "image" und "caption" enthalten sind, wird es wie unten gezeigt als "postmeta" bezeichnet. Die "2" in der dritten Zeile scheint die definierte Anzahl von Elementen zu enthalten.
<wp:postmeta>
<wp:meta_key><![CDATA[images]]></wp:meta_key>
<wp:meta_value><![CDATA[2]]></wp:meta_value>
</wp:postmeta>
<wp:postmeta>
<wp:meta_key><![CDATA[_images]]></wp:meta_key>
<wp:meta_value><![CDATA[field_5670f0d3391f8]]></wp:meta_value>
</wp:postmeta>
<!--Erstes Bild-->
<wp:postmeta>
<wp:meta_key><![CDATA[images_0_image]]></wp:meta_key>
<wp:meta_value><![CDATA[10]]></wp:meta_value>
</wp:postmeta>
<wp:postmeta>
<wp:meta_key><![CDATA[_images_0_image]]></wp:meta_key>
<wp:meta_value><![CDATA[field_5670f2bad2c5a]]></wp:meta_value>
</wp:postmeta>
<wp:postmeta>
<wp:meta_key><![CDATA[images_0_caption]]></wp:meta_key>
<wp:meta_value><![CDATA[Image 1]]></wp:meta_value>
</wp:postmeta>
<wp:postmeta>
<wp:meta_key><![CDATA[_images_0_caption]]></wp:meta_key>
<wp:meta_value><![CDATA[field_5670f2bfr2c5a]]></wp:meta_value>
</wp:postmeta>
<!--Zweites Bild-->
<wp:postmeta>
<wp:meta_key><![CDATA[images_1_image]]></wp:meta_key>
<wp:meta_value><![CDATA[11]]></wp:meta_value>
</wp:postmeta>
<wp:postmeta>
<wp:meta_key><![CDATA[_images_1_image]]></wp:meta_key>
<wp:meta_value><![CDATA[field_5670f2bad2c5a]]></wp:meta_value>
</wp:postmeta>
<wp:postmeta>
<wp:meta_key><![CDATA[images_1_caption]]></wp:meta_key>
<wp:meta_value><![CDATA[Image 2]]></wp:meta_value>
</wp:postmeta>
<wp:postmeta>
<wp:meta_key><![CDATA[_images_1_caption]]></wp:meta_key>
<wp:meta_value><![CDATA[field_5670f2bfr2c5a]]></wp:meta_value>
</wp:postmeta>
Der Importvorgang kann anhand des Codes des Plugins * WordPress Import Tool * verstanden werden. Da es nur zwei Dateien gibt, ist es meiner Meinung nach schneller, den Debug-Code in den Code des Plug-ins * WordPress-Import-Tool * einzufügen, als sich durch Ausprobieren von XML anstrengen zu müssen.
Der Importvorgang sieht übrigens wie folgt aus.
item
(wahrscheinlich category
) steuert, dass nicht dasselbe importiert wird, indem Sie sich die ID ansehen. Wenn Sie die ID also nicht richtig fusseln, wird sie aus irgendeinem Grund nicht importiert. .. (süchtig nach.)
Ich habe ein Python-Skript veröffentlicht, das ich für die Arbeit an GitHub erstellt habe. Wenn Sie also glauben, dass Sie es verwenden können, verwenden Sie es bitte.
Ich verwende Pfeil für die Verarbeitung um das Datum herum, also füge dies einfach mit "pip install arrow" ein.
examples / my_wordpress.py
ist ein Beispiel für ein Python-Skript, das tatsächlich XML generiert.
Ich habe "Kategorie" und "Begriff" nicht ausprobiert, weil ich sie nicht wirklich verwendet habe. Bitte verwenden Sie auf eigenes Risiko.
Recommended Posts