Je l'ai vérifié parce que j'avais besoin de le faire au travail, alors j'ai pris une note.
La destination WordPress utilisait un type de publication personnalisé et ACF, donc c'était un peu ennuyeux.
J'ai décidé de créer WordPress XML, un outil d'importation WordPress, à partir de mes propres données CMS et de migrer les données.
Comme vous pouvez le voir en écrivant le site WordPress en utilisant ACF en XML et en regardant à l'intérieur, ACF semble avoir un identifiant tel que field_5671e74fc8c5e
attribué à chaque champ, donc cela est nécessaire lors de la création de WordPress XML.
Donc, la configuration est la suivante.
La structure approximative de XML est la suivante.
«Auteur», «catégorie», «terme» correspondent à l'utilisateur, à la catégorie et au terme de WordPress.
ʻItem ne sont pas seulement des articles et des pages, mais également des images et des champs personnalisés ACF sont inclus dans ʻitem
.
La valeur du champ personnalisé enregistré dans chaque article est dans postmeta
.
Un identifiant est attribué à chacun des «auteur», «catégorie», «terme» et «élément», et il est utilisé pour les relations parent-enfant et pour spécifier les images définies dans l'élément.
Au fait, «l'auteur» semble pouvoir être importé sans lui.
L'image est enregistrée comme «élément».
L'URL de l'image est définie comme un élément enfant nommé ʻattachment_url`.
Si vous enregistrez un «élément» qui représente un article en tant qu'élément parent, il sera importé correctement en tant qu'image associée à cet article.
Le champ personnalisé de l'image contient l'ID de l'image définie dans l'élément.
Les données du champ personnalisé sont dans postmeta
, mais quand il y a un champ de texte nommé" année ", cela ressemble à ceci.
<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>
Afin de créer du XML pour l'importation, vous devez connaître year
et field_5670f2bfd2c5a
.
Par exemple, s'il y a un champ répétitif appelé ʻimages, et qu'il y a plusieurs champs de texte appelés ʻimage
et caption
dedans, ce sera postmeta
comme indiqué ci-dessous.
Le «2» sur la troisième ligne semble contenir le nombre défini d'éléments.
<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>
<!--Première image-->
<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>
<!--Deuxième image-->
<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>
Vous pouvez voir le processus d'importation en regardant le code du plug-in * WordPress Import Tool *. Puisqu'il n'y a que 2 fichiers, je pense qu'il est plus rapide d'essayer de mettre le code de débogage dans le code du plug-in * WordPress d'importation * que d'essayer dur par essais et erreurs de XML.
À propos, le processus d'importation ressemble au flux suivant.
ʻItem (probablement
catégorie`) contrôle de ne pas importer la même chose en regardant l'ID, donc si vous ne serrez pas correctement l'ID, il ne sera pas importé pour une raison quelconque. .. (accro.)
J'ai publié un script Python que j'ai créé pour travailler sur GitHub, veuillez donc l'utiliser si vous pouvez l'utiliser.
J'utilise arrow pour le traitement autour de la date, alors mettez-le simplement avec pip install arrow
.
ʻExamples / my_wordpress.py` est un exemple de script Python qui génère réellement du XML.
Je n'ai pas essayé «catégorie» et «terme» parce que je ne les ai pas réellement utilisés. Utilisez à vos risques et périls.
Recommended Posts