Não estamos aceitando novos projetos no momento, saiba mais
Ao migrar uma instalação WordPress com muitos posts, páginas ou custom post types, um problema que pode ser enfrentado é a falta de capacidade do servidor para processar a geração do XML, ou mesmo do servidor para o qual o conteúdo será movido de processar a importação deste XML.
Em ambos os casos, uma das melhores opções é particionar a exportação do arquivo XML em vários arquivos, separando a exportação de páginas, posts, custom post types, e se preciso, separando ainda por períodos (meses) cada um. Ou seja, ao invés de tentar gerar um único XML imenso, a ideia é tentar gerar múltiplos arquivos menores que ambos os servidores consigam lidar.
Arquivo parcial ainda grande, como resolver?
O WordPress permite que você exporte no máximo o conteúdo de um mês em um XML, porém mesmo em um mês dependendo da frequência de publicação de um site, você pode ter centenas ou milhares de publicações e o arquivo gerado ainda ser grande demais. Como lidar?
Utilizando o snippet abaixo é possível gerar um arquivo de exportação programaticamente, consumindo menos recursos (o arquivo que o servidor criar com este script terá mais posts do que ele é capaz de exportar pelo painel do WordPress – ainda não sei o por quê). Crie um arquivo na raiz da sua instalação WordPress, chamado de export.php
e insira:
Acesse o endereço do seu site seguido de /export.php
, pronto, ele irá gerar um arquivo wordpress-{data}.xml
na raiz do seu servidor. Se ele gerar um arquivo XML em branco pedindo para você salvar no seu computador, apenas ignore e acesse o seu servidor e pegue o arquivo salvo que estará lá. Com esse método conseguimos exportar todas as publicações de um site com milhares de posts, sem necessidade de tentar exportar múltiplos arquivos por mês.
Bônus: Importando arquivos XML no WordPress com WP-CLI
O Rafael Funchal escreveu um artigo recentemente falando como importar os arquivos XML utilizando o WP-CLI, vale a pena conferir. Se você estiver utilizando WP-CLI, vale também tentar o comando wp export, no nosso caso infelizmente o conteúdo estava em um servidor sem WP-CLI nem acesso para instala-lo.