Falha ao importar mídia


14

Ao gerar um arquivo XML com [Ferramentas> Exportar] e usar [Ferramentas> Importar] em outro site do WordPress, recebo "Falha ao importar mídia" para cada tipo de postagem de anexo. E as imagens que falharam ao carregar são vinculadas a partir do servidor anterior, o que consome a transferência desse servidor anterior ...

Mas quando eu faço o download do "Unit Test" em http://codex.wordpress.org/Theme_Unit_Test , esse problema não existe. Algumas imagens ainda têm "Falha ao importar mídia", mas são apenas 5 em 30 imagens. Eles têm URLs para seu próprio servidor em seu XML, mas de alguma forma [Ferramentas> Importar] consegue baixar suas mídias e substituir esses URLs por novos locais (não é mais um hotlink).

Qual é o truque para fazê-lo funcionar corretamente sem "Falha ao importar mídia"? Por que até o "Teste de unidade" possui algumas mensagens "Falha ao importar mídia"?


Como o servidor em que você importa precisa obtê-los do local antigo, verifique não apenas se os arquivos estão no servidor antigo, mas também se o novo servidor pode buscá-los. Talvez algo limite as solicitações de saída. Você já tentou importá-lo em outro servidor ou host local? Receio que este possa ser um problema muito localizado.
Kraftner

1
No WordPress 4.3.1 (possivelmente mais cedo), você pode definir IMPORT_DEBUGe configurá-lo truepara obter um feedback significativo em vez de apenas "Falha ao importar mídia". Não consigo imaginar por que esse comportamento não é padrão. Isso pode ajudar a diminuir o problema se o tempo estiver bom.
Mark

@ Marcos na qual arquivo eu posso definir a IMPORT_DEBUGopção
kimliv

2
@kimliv: você vai querer ficar isso no wp-config.php na raiz do seu WordPress instalar: define ( 'IMPORT_DEBUG', true );.
Mark

Desculpe pelo problema, tive o mesmo problema e o site original do qual eu importo não tinha o SSL funcionando e os xmlURLs estavam ativados https, editando os xmlarquivos para alternar httpspara httpajudar.
Samuel Elh

Respostas:


12

Eu tive um problema muito semelhante quando mudei um Blog do WordPress de uma única instalação do WordPress para uma instalação Multisite com nomes de domínio diferentes, mas o mesmo IP.
Descobri que o problema é a wp_http_validate_urlfunção que descarta a URL se o IP de origem for o mesmo que o IP de destino.
Você pode adicionar um filtro wp_http_validate_urlpara evitar isso e permitir IPs de origem e destino correspondentes:

add_filter( 'http_request_host_is_external', '__return_true' );

Consulte esta resposta para obter uma explicação detalhada do gancho de filtro e por que você deve removê-lo após a importação: /wordpress//a/123313/75573


Passei quase 5 horas tentando importar minhas postagens com suas imagens e isso foi resolvido.
21419 Jonny

Não sei se entendi para onde esta edição precisa ir. Alguém pode explicar melhor?
ClairelyClaire 23/08/19

Você pode soltá-lo em functions.php ou colocá-lo em um plug-in. O posterior facilita a ativação e desativação, conforme necessário.
Merl

1

Quando você gerou seu arquivo de exportação, ele estava em um servidor ativo ou em um host local? Essa página da web ainda está acessível? Se a importação da mídia falhar, isso significa que as imagens, como vinculadas a partir do XML, serão exibidas 404.

Abra o arquivo XML e veja para onde as imagens estão apontando. Se abrirmos o arquivo XML da unidade temática, veremos linhas como esta:

<wp:attachment_url>http://wpthemetestdata.files.wordpress.com/2008/06/canola2.jpg</wp:attachment_url>

Esse arquivo está claramente disponível para importação. O que dizem os seus arquivos attachment_url?


1
Eu mencionei "E as imagens que falharam ao carregar são vinculadas a partir do servidor anterior que consome a transferência do servidor anterior ...", o que indica que as imagens não retornam 404, elas não estão no host local, mas ainda geram "Falha ao importar mídia " Meu <wp:attachment_url>diz example.com/2008/06/image.jpg também onde example.com é sempre domínio acessível. É por isso que estou fazendo esta pergunta :) Claramente não funciona mesmo que as imagens não gerem 404. Nem funciona com wpthemetestdata.files.wordpress.com ocasionalmente (~ 5 imagens aleatórias em 30 falham).
Paul

Certo, desculpe, minha mente está um pouco esgotada neste momento da noite. Você tem algum tipo de proteção de hotlink no servidor?
Ideias imperativas

1
Não, é um servidor acessível ao público com imagens acessíveis ao público, sem proteção alguma. Mas, mesmo que houvesse alguma proteção, o servidor do WordPress faz a mesma coisa ocasionalmente. Isso significa que esse importador é apenas um buggy?
Paul

Esse ou um dos servidores possui um valor de tempo limite irritantemente curto. Estou sem ideias para você. O XML importa corretamente para o Localhost? Nesse caso, você pode meio que enganar ... faça a importação localmente, use o WP Migrate DB e clone o resultado para viver.
Ideias imperativas

1

Também tenho lutado com a importação de mídia para o wordpress.org do wordpress.com. Consegui importar todas as postagens, mas as imagens ainda estavam vinculadas ao site antigo. Eu estava quase chorando ao perceber que a única solução era baixar e fazer upload manualmente de mais de 200 imagens grandes, postagem por postagem (exportar / importar partes menores de postagens também não funcionavam).

Depois de testar alguns plugins, encontrei um que realmente importa sua mídia wordpress automaticamente. Eu não podia acreditar, mas realmente funciona. Você precisa publicar post por post, mas ainda assim é melhor do que o download e o upload manual. Aqui está o link se alguém estiver interessado


1

Verifique se o site não está definido como "Privado".

Quando você exporta seu blog Wordpress, todo o conteúdo textual é incorporado no arquivo XML resultante. Todo o conteúdo binário (imagens, anexos de arquivos etc.) é exportado como URLs apontando para sua localização no blog existente. É por isso que quando você importa de um blog particular do Wordpress, ainda poderá importar todos os posts / etc, mas todas as imagens / etc falharão.

Aqui é onde você precisa alterar a configuração na versão atual (19/06/2017):

insira a descrição da imagem aqui

Documentação relevante do Wordpress:

https://en.support.wordpress.com/settings/privacy-settings/

Observe que ele precisa ser feito a partir das configurações da sua conta do Wordpress.com, não das configurações do próprio blog, que é outro ponto potencial de confusão (e frustração).


1

Esse problema pode ocorrer ao usar determinados plug-ins no site remoto / local.

Idealmente, desative todos os plugins nos dois sites antes de exportar ou importar e reative-os após a conclusão do processo.

Se você está tentando evitar desativar TODOS os plug-ins, pelo menos desative todos os plug-ins que afetem imagens ou manuseio de imagens ... o tipo mais comum provavelmente seria o de otimização de imagem.

No meu caso, eu tinha o EWWW Image Optimizer (que eu recomendo) ativo no site local, e isso causou esse erro. Desativei, executei a importação com sucesso e a reativei.


0

Eu tive o mesmo problema e, depois de horas pesquisando e testando, o problema era que o servidor de origem estava bloqueando os downloads de imagens devido à "Proteção do Hotlink" estar ativa no cPanel.


Você está certo. No meu caso, percebi que implementei uma proteção de hotlink no meu .htaccess. Outros casos são cPanel ou Cloudflare.
John Doe

0

Para aqueles que não querem usar add_filterou não têm idéia de como integrá-lo sem criar um módulo separado. Aqui está um truque prático e rápido para fazê-lo.

Abra este arquivo

vim ./wp-includes/http.php

Vá para a linha 566e comente o seguinte bloco de código.

if ( ! apply_filters( 'http_request_host_is_external', false, $host, $url ) )
  return false;

Depois de comentar essas duas linhas, entre e adicione a seguinte linha.

return true;

Vá em frente, salve o arquivo e faça o upload do arquivo XML para tentar novamente. Agora você fará o download de todo o conteúdo relacionado. Volte e remova o bloco de comentários e a declaração de retorno e pronto.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.