Como exportar e importar taxonomias (categoria, tag e / ou taxonomia personalizada) e seus termos

9

Eu quero exportar todas as categorias do Wordpress (sem postagens, apenas categorias) de um blog para outro. Como posso fazer isso?

    
por chubbyk 25.11.2011 / 18:22

5 respostas

4

Eu resolvi este problema com 2 consultas.

Esta não é a melhor maneira, suponho, mas com certeza não o mais seguro . Além disso, pressupõe-se que você esteja trabalhando no mesmo banco de dados (se esse não for o caso, você poderá facilmente exportar a consulta e depois importar para outro banco de dados).

Eu usei isso em uma instalação do wordpress vazio :

1 - Importe os termos da categoria:

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 - Relacionamentos e descrições de categorias de importação

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_ refere-se à tabela na qual você deseja importar, enquanto oldwp_ refere-se à tabela de origem

    
por Dalen 26.01.2012 / 00:15
3

Esta resposta é essencialmente a mesma de Ünsal, mas eu gostaria de elaborar um pouco porque, apesar de estar certo, a resposta dele não me ajudou (eu estava apenas tentando lembrar o que eu tinha feito no passado, eu deveria li o seu mais cuidadosamente e eu teria descoberto, mas acho que para os outros uma descrição completa seria útil).

Para exportar a hierarquia completa da categoria, é necessário exportar "Todo o conteúdo"

Qualquer outra opção não fornece todos os dados (por exemplo, a exportação de uma postagem com todas as categorias marcadas com mais trabalhos, mas você perde todos os dados de parentesco / hierarquia sobre taxonomias hierárquicas).

Quando você exporta "Todo o conteúdo", o arquivo resultante tem uma seção com dados sobre seus termos. Se você olhar pelo arquivo, deve ser fácil encontrá-lo, depois dos autores e antes dos "itens" (ou seja, posts).

Você pode apenas importar e excluir o conteúdo, se essa for uma opção *

Importar o arquivo completo replicará a hierarquia da taxonomia perfeitamente, mas também obviamente importará todas as páginas e posts também. Se não houver muitos, considere excluí-los manualmente. Não demorará muito se você fizer isso em massa e houver menos de centenas (lembre-se de que você pode usar Opções de tela na tela Editar postagens para mostrar mais do que o padrão e, assim, editar em massa mais de uma vez).

Se você tiver muito conteúdo para remover tudo, precisará editar o arquivo WXR manualmente para remover tudo, exceto os termos que deseja manter.

Editando o arquivo WXR para remover o conteúdo

Isso pode ser um pouco complicado, mas realmente, se você olhar o conteúdo do arquivo, não é tão difícil descobrir o que cada elemento faz. XML é como HTML com tags, então o principal a ser cuidado é que você não exclua uma tag de fechamento enquanto deixa a tag de abertura, etc.

Você descobrirá que existem 1-3 tipos de definições de termos no WXR, um tipo para Categorias, um para "tags" e um para "terms". As "taxonomias personalizadas" usam termos, enquanto as categorias e as tags antigas têm seu próprio formato especial.

EXEMPLO DE CATEGORIA

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

EXEMPLO DE TAG

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

EXEMPLO DE TERMOS DE TAXONOMIA PERSONALIZADA

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

Portanto, o que você deseja fazer é remover todo o conteúdo que não seja essas tags de categoria / tag / termo do arquivo WXR. Ou seja, wp: tags de autor que vêm antes e muitas tags de itens que vêm depois. Mais importante: não remova as tags de fechamento / canal e / rss na parte inferior! Sem elas, o XML não é validado.

OBVIAMENTE você testará os resultados da importação do arquivo editado antes de usá-lo em um site ativo. Tente importá-lo para uma nova instalação local e veja se ele falha completamente, então verifique a lista de categorias no wp-admin e certifique-se de que tudo está exatamente como você esperava.

Boa sorte!

    
por jerclarke 29.04.2014 / 20:02
2

Você não pode exportar apenas categorias (ou taxonomias em geral). Basta exportar todo o conteúdo com Ferramentas / Exportar e você pode excluir o conteúdo, exceto as categorias do xml.

    
por Ünsal Korkmaz 26.11.2011 / 00:53
2

Qual é o seu objetivo final aqui? Apenas para obter uma lista de categorias de um blog para outro? Ou, você está tentando mover todo o conteúdo dentro de uma categoria ou categoria para outra instalação do WordPress?

É meio feio, mas você pode exportar todo o conteúdo, basta excluir o conteúdo das categorias ou excluir as categorias que não deseja. Provavelmente seria um dos caminhos mais rápidos para o seu objetivo.

    
por tollmanz 28.11.2011 / 03:26
1

Se você tiver acesso às tabelas do banco de dados, você pode fazer uma exportação de mysql dump das tabelas wp_term_relationships, wp_term_taxonomy, wp_terms e importá-las para a nova instalação do wordpress. Eu fiz isso entre duas instalações do WP com mais de 300 categorias e funcionou bem.

    
por Rocco The Taco 30.03.2014 / 12:08