Wenn Sie dasselbe wie zuvor verwenden, können Sie dies visualisieren, indem Sie Japan, China und Südkorea ausschließen, in denen viele Menschen infiziert sind. In diesem Fall lauten die Daten für "2020/02/21" wie folgt. Besonders auffällig sind Südostasien, Europa und Nordamerika. Ich hoffe es konvergiert so schnell wie möglich. .. .. Migrieren Sie Python, Pandas, Python3, Zeitreihendaten und eigene CMS-Daten nach WordPress

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.

Rauer Fluss

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.

  1. Legen Sie benutzerdefinierte Beitragstypen und benutzerdefinierte Felder im Ziel-WordPress fest.
  2. Registrieren Sie im Ziel-WordPress die Beispieldaten mit den ordnungsgemäß eingegebenen benutzerdefinierten Feldwerten.
  3. Exportieren Sie XML in das Ziel-WordPress. Sehen Sie sich den Inhalt an, um den benutzerdefinierten Beitragstyp und die benutzerdefinierten Feldkennungen anzuzeigen.
  4. Konvertieren Sie die CMS-Quelldaten für das WordPress-Importtool in XML. Bilder sollten per URL zugänglich sein.
  5. Importieren Sie das erstellte XML in das Ziel-WordPress.

XML für WordPress-Import-Tool

Raue Struktur

Die grobe Struktur von XML ist wie folgt.

WordPressインポートツール用のXMLの構造

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.

Bild

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.

Benutzerdefinierte Felddaten

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.

Feld wiederholen

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>

Wenn das generierte XML nicht erfolgreich importiert wird

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.

  1. Analysieren Sie das XML und teilen Sie es in "Autoren", "Kategorie", "Begriff" und "Element".
  2. Importieren Sie jeweils
  3. Verknüpfen Sie die Eltern-Kind-Beziehung von "Gegenstand" (Zuordnung von Artikeln zu Bildern usw.)

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.)

WordPress XML-Generierungsbibliothek für Python

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.

wordpress_importer_util

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

Wenn Sie dasselbe wie zuvor verwenden, können Sie dies visualisieren, indem Sie Japan, China und Südkorea ausschließen, in denen viele Menschen infiziert sind. In diesem Fall lauten die Daten für "2020/02/21" wie folgt. Besonders auffällig sind Südostasien, Europa und Nordamerika. Ich hoffe es konvergiert so schnell wie möglich. .. .. Migrieren Sie Python, Pandas, Python3, Zeitreihendaten und eigene CMS-Daten nach WordPress
Kommentieren Sie Ihre eigenen Daten, um Mask R-CNN zu trainieren
Migrieren Sie Qiita-Artikel zu WordPress
Überbrücken Sie ROS mit Ihrem eigenen Protokoll
Fügen Sie mitmproxy Ihre eigene Inhaltsansicht hinzu
So importieren Sie Ihr eigenes Modul mit jupyter
So installieren Sie Ihre eigene (Root-) Zertifizierungsstelle
Speichern Sie SQLite3-Daten und migrieren Sie zu MySQL
Versuchen Sie, Ihr eigenes AWS-SDK mit bash zu erstellen
So definieren Sie Ihr eigenes Ziel in Sage
[Zur Aufnahme] Keras-Bildsystem Teil 1: Wie erstelle ich einen eigenen Datensatz?
Trainieren Sie Stanford NER Tagger mit Ihren eigenen Daten
[AWS] Migrieren Sie Daten von DynamoDB nach Aurora MySQL
Schritte zum Installieren Ihrer eigenen Bibliothek mit pip
Memo zum Erstellen einer eigenen Box mit Peppers Python
Erstellen Sie Ihre eigenen Big Data in Python zur Validierung
[Einführung in die Udemy Python3 + -Anwendung] 66. Erstellen einer eigenen Ausnahme
Versuchen Sie, Ihr eigenes Intro-Quiz mit Python zu verbessern
Versuchen Sie, die LED in Ihren eigenen PC einzubauen (leicht)
[Road to Intermediate Python] Definieren Sie in Ihrer eigenen Klasse
Erstellen Sie Ihre eigene Ausnahme
Verwenden Sie Gokart, um Pandas-Assoziationen in Ihrer Datenpipeline zu testen.
[Ansible] So rufen Sie Variablen auf, wenn Sie ein eigenes Modul erstellen
Wie Sie pyenv und pyenv-virtualenv auf Ihre eigene Weise verwenden
(Hinweis) So übergeben Sie den Pfad Ihres eigenen Moduls
So erhalten Sie einen Überblick über Ihre Daten in Pandas