Comment exporter et importer des taxonomies (catégorie, tag et / ou taxonomie personnalisée) et leurs termes


10

Je souhaite exporter toutes les catégories Wordpress (pas de messages, juste des catégories) d'un blog à un autre. Comment puis je faire ça ?


Avez-vous essayé d'accéder à Gérer> Exporter depuis le panneau d'administration du blog.

Il n'y a pas de menu Gérer, il n'y a que le menu Outils / Exporter mais il ne me permet pas d'exporter uniquement les catégories
chubbyk

Désolé pour cela, je l'ai lu sur un blog en ligne. Pourriez-vous faire cela au niveau de la base de données?

Si vous avez besoin d'un effort simple, essayez le plugin Export Categories . wordpress.org/plugins/export-categories

Réponses:


5

Cette réponse est essentiellement la même que celle d'Ünsal, mais j'aimerais m'étendre un peu car, bien qu'ayant raison, sa réponse ne m'a pas aidé (j'essayais juste de me rappeler ce que j'avais fait dans le passé, j'aurais dû lire sa plus attentivement et je l'aurais compris, mais je pense que pour d'autres, une description complète serait utile).

Pour exporter la hiérarchie complète des catégories, vous devez exporter "Tout le contenu"

Toute autre option ne vous donnera pas les données complètes (par exemple, l'exportation d'un article avec toutes les catégories marquées fonctionne principalement, mais vous perdez toutes les données de parenté / hiérarchie sur les taxonomies qui sont hiérarchiques).

Lorsque vous exportez "Tout le contenu", le fichier résultant comporte une section contenant des données sur vos conditions. Si vous parcourez le fichier, il devrait être assez facile de le trouver, après les auteurs et avant les «éléments» (c'est-à-dire les articles).

Vous pouvez simplement importer cela et supprimer du contenu si c'est une option *

L'importation du fichier complet répliquera parfaitement la hiérarchie de taxonomie, mais aussi évidemment importera toutes les pages et publications. S'il n'y en a pas trop, pensez à les supprimer à la main. Cela ne prendra pas si longtemps si vous le faites en masse et il y en a moins de centaines (rappelez-vous que vous pouvez utiliser les Options d'écran sur l'écran Modifier les messages pour afficher plus que la valeur par défaut et donc modifier en masse plus à la fois).

Si vous avez trop de contenu pour tout supprimer, vous devez modifier le fichier WXR à la main pour supprimer tout sauf les termes que vous souhaitez conserver.

Modification du fichier WXR pour supprimer du contenu

Cela peut être un peu délicat, mais si vous regardez le contenu du fichier, ce n'est pas si difficile de comprendre ce que fait chaque élément. XML est comme HTML avec des balises, donc la principale chose à faire est de ne pas supprimer une balise de fermeture tout en laissant la balise d'ouverture, etc.

Vous constaterez qu'il existe 1 à 3 types de définitions de termes dans le WXR, un type pour les catégories, un pour les «balises» et un pour les «termes». Les «taxonomies personnalisées» utilisent des termes tandis que les catégories et les balises à l'ancienne ont leur propre format spécial.

EXEMPLE DE CATÉGORIE

<wp:category><wp:term_id>8880</wp:term_id><wp:category_nicename>runner-up-proposals</wp:category_nicename><wp:category_parent>second-round-proposals</wp:category_parent><wp:cat_name><![CDATA[Runner-up Proposals]]></wp:cat_name></wp:category>

EXEMPLE D'ÉTIQUETTE

<wp:tag><wp:term_id>122</wp:term_id><wp:tag_slug>ave-maria</wp:tag_slug><wp:tag_name><![CDATA[Ave Maria]]></wp:tag_name></wp:tag>

EXEMPLE DE TERME DE TAXONOMIE PERSONNALISÉE

<wp:term><wp:term_id>8579</wp:term_id><wp:term_taxonomy>gv_tools</wp:term_taxonomy><wp:term_slug>digital-video</wp:term_slug><wp:term_parent></wp:term_parent><wp:term_name><![CDATA[Digital Video]]></wp:term_name></wp:term>

Donc, ce que vous voulez faire, c'est supprimer tout le contenu autre que ces balises de catégorie / balise / terme du fichier WXR. À savoir wp: les balises d'auteur qui précèdent et les nombreuses balises d'élément qui viennent après. Plus important encore: ne supprimez pas les balises de fermeture / channel et / rss en bas! Sans eux, le XML ne sera pas validé.

Évidemment, vous testerez les résultats de l'importation de votre fichier modifié avant de l'utiliser sur un site Web en direct. Essayez de l'importer dans une nouvelle installation localement et voyez si elle échoue complètement, puis vérifiez l'écran de liste des catégories dans wp-admin et assurez-vous que tout est exactement comme prévu.

Bonne chance!


1
Notez que cela n'ajoutera pas de hiérarchie aux catégories qui ont déjà été créées. Il affectera uniquement les catégories parentes aux sous-catégories qui n'existent pas déjà.
Zade

4

J'ai résolu ce problème avec 2 requêtes.

Ce n'est pas la meilleure façon, je suppose, mais certainement pas la plus sûre . De plus, cela suppose que vous travaillez sur la même base de données (si ce n'est pas le cas, vous pouvez facilement exporter la requête puis l'importer dans une autre base de données).

Je l'ai utilisé sur une installation wordpress vide :

1 - Importez les termes de la catégorie:

INSERT INTO newwp_terms
SELECT te.*
  FROM oldwp_terms te
  JOIN oldwp_term_taxonomy ta
    ON te.term_id = ta.term_id
 WHERE ta.taxonomy = 'category'
 ;

2 - Importation des relations et descriptions des catégories

INSERT INTO newwp_term_taxonomy
SELECT term_taxonomy_id,term_id,taxonomy,description,parent,0
  FROM oldwp_term_taxonomy ta
  WHERE ta.term_taxonomy_id IN
          (
           SELECT ta2.term_taxonomy_id
             FROM oldwp_terms te
             JOIN oldwp_term_taxonomy ta2
               ON te.term_id = ta2.term_id
            WHERE ta.taxonomy = 'category'
         )
  ;

[A] nyway newwp_fait référence à la table dans laquelle vous souhaitez importer tandis que oldwp_fait référence à la table source


2

Vous ne pouvez pas exporter uniquement des catégories (ou des taxonomies en général). Il vous suffit d'exporter tout le contenu avec Tools / Export et vous pouvez supprimer le contenu à l'exception des catégories du XML.


2

Quel est votre objectif final ici? Juste pour obtenir une liste de catégories d'un blog à un autre? Ou, essayez-vous de déplacer tout le contenu dans une ou plusieurs catégories vers une autre installation WordPress?

C'est plutôt moche, mais vous pouvez exporter tout le contenu, puis simplement supprimer le contenu dans les catégories ou supprimer les catégories dont vous ne voulez pas. Ce serait probablement l'un des moyens les plus rapides d'atteindre votre objectif.


2

Si vous avez accès aux tables de base de données, vous pouvez effectuer une exportation de vidage mysql des tables wp_term_relationships, wp_term_taxonomy, wp_terms et les importer dans la nouvelle installation wordpress. Je viens de le faire entre deux installations WP avec plus de 300 catégories et cela a bien fonctionné.


merci, cela a bien fonctionné de ma part.
Nikhil VJ
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.