Comment exporter et importer des taxonomies (taxonomie de catégorie, balises et / ou personnalisation) et leurs termes

9

Je souhaite exporter toutes les catégories Wordpress (pas de publications, mais uniquement des catégories) d'un blog à un autre. Comment puis-je faire cela?

    
posée chubbyk 25.11.2011 - 18:22

5 réponses

4

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

Je suppose que ce n'est pas la meilleure solution, mais certainement pas le le plus sûr . 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 vide wordpress:

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 - Importer des relations et des descriptions de 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

    
réponse donnée Dalen 26.01.2012 - 00:15
3

Cette réponse est essentiellement la même que celle d'Ünsal, mais j'aimerais élaborer un peu car, même s'il a raison, sa réponse ne m'a pas aidé (j'essayais simplement de me rappeler ce que j'avais fait dans le passé, je devrais Je l'ai lu plus attentivement et j'aurais compris, mais je pense qu'une description complète serait utile pour les autres).

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

.

Aucune autre option ne vous donnera les données complètes (par exemple, l’exportation d’une publication avec toutes les catégories marquées fonctionne généralement, mais vous perdez toutes les données de parenté / hiérarchie sur les taxonomies hiérarchiques).

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

Vous pouvez simplement importer ceci et supprimer du contenu s'il s'agit d'une option *

L'importation du fichier complet reproduira parfaitement la hiérarchie de la taxonomie, mais importera également toutes les pages et tous les articles. S'il n'y en a pas beaucoup, envisagez simplement de les supprimer à la main. Cela ne prendra pas beaucoup de temps si vous le faites en vrac et qu'il y en a moins de centaines (souvenez-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 en modifier davantage à la fois).

Si vous avez trop de contenu pour tout supprimer, vous devez éditer le fichier WXR à la main pour tout supprimer, 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 examinez le contenu du fichier, il n’est pas si difficile de comprendre ce que fait chaque élément. XML est comme du HTML avec des balises, la principale chose à faire est de ne pas supprimer une balise de fermeture en laissant la balise d’ouverture, etc.

Vous constaterez qu’il existe 1 à 3 types de définitions de termes dans le rapport WXR, un type pour les catégories, un pour les "tags" 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.

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 est de supprimer tout le contenu autre que ces balises category / tag / term du fichier WXR. À savoir wp: les balises d'auteur qui précèdent et les nombreuses balises d'items qui suivent. Plus important encore: ne supprimez pas les balises de fermeture / channel et / rss en bas! Sans elles, le XML ne sera pas validé.

OBLIGATOIREMENT , vous allez tester les résultats de l'importation de votre fichier modifié avant de l'utiliser sur un site Web en direct. Essayez de l'importer localement dans une nouvelle installation et vérifiez si elle échoue complètement, puis vérifiez l'écran de liste des catégories dans wp-admin et assurez-vous que tout est conforme à vos attentes.

Bonne chance!

    
réponse donnée jerclarke 29.04.2014 - 20:02
2

Vous ne pouvez exporter que des catégories (ou des taxonomies en général). Exportez simplement tout le contenu avec Outils / Exporter et vous pouvez supprimer du contenu sauf les catégories de xml.

    
réponse donnée Ünsal Korkmaz 26.11.2011 - 00:53
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 d’une catégorie à une autre installation de WordPress?

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

    
réponse donnée tollmanz 28.11.2011 - 03:26
1

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 de wordpress. Je viens de faire cela entre deux installations WP avec plus de 300 catégories et tout a bien fonctionné.

    
réponse donnée Rocco The Taco 30.03.2014 - 12:08

Lire d'autres questions sur les étiquettes