Impossibile importare i media


14

Quando generi file XML con [Strumenti> Esporta] e utilizzo [Strumenti> Importa] su un altro sito Web WordPress, visualizzo "Impossibile importare i media" per ogni tipo di post allegato. E le immagini che non sono state caricate vengono hotlinkate dal server precedente che consuma il trasferimento di quel server precedente ...

Ma quando scarico "Unit Test" da http://codex.wordpress.org/Theme_Unit_Test, questo problema non esiste. Alcune immagini hanno ancora "Impossibile importare file multimediali" ma sono solo 5 immagini su 30. Hanno URL sul proprio server nel loro XML ma in qualche modo [Strumenti> Importa] riesce a scaricare i loro media e sostituire questi URL con nuove posizioni (non è più hotlink).

Qual è il trucco per farlo funzionare correttamente senza "Impossibile importare i media"? Perché anche "Unit Test" ha alcuni messaggi "Impossibile importare i media"?


Poiché il server in cui si importa deve recuperarli dalla vecchia posizione, è necessario non solo verificare se i file si trovano sul vecchio server, ma anche se il nuovo server può recuperarli. Forse qualcosa limita le richieste in uscita. Hai provato a importarlo su un altro server o localhost? Temo che questo potrebbe essere un problema molto localizzato.
Kraftner,

1
A partire da WordPress 4.3.1 (possibilmente in precedenza) è possibile definirlo IMPORT_DEBUGe impostarlo in modo trueda ottenere un feedback significativo anziché solo "Impossibile importare i media". Non riesco a immaginare perché questo non sia un comportamento predefinito. Ciò può aiutare a limitare il problema se il tempo è giusto.
Segna il

@Mark in quale file posso impostare l' IMPORT_DEBUGopzione
kimliv l'

2
@kimliv: ti consigliamo di attaccare questo in wp-config.php alla radice del vostro WordPress installare: define ( 'IMPORT_DEBUG', true );.
Segna il

Ci scusiamo per il bumping, ho avuto lo stesso problema e il sito originale da cui ho importato aveva SSL non funzionante e gli xmlURL sono attivi https, modificando i xmlfile per attivarehttps ohttp .
Samuel Elh,

Risposte:


12

Ho avuto un problema molto simile quando ho spostato un blog di WordPress da una singola installazione di WordPress a un'installazione multisito con nomi di dominio diversi ma stesso IP.
Ho scoperto che il problema è la wp_http_validate_urlfunzione che rilascia l'URL se l'IP di origine è lo stesso dell'IP di destinazione.
È possibile aggiungere un filtro wp_http_validate_urlper impedirlo e consentire la corrispondenza degli IP di origine e destinazione:

add_filter( 'http_request_host_is_external', '__return_true' );

Vedere questa risposta per una spiegazione dettagliata dell'hook del filtro e perché è necessario rimuoverlo dopo l'importazione: /wordpress//a/123313/75573


Ho trascorso quasi 5 ore a cercare di importare i miei post con le loro immagini e questo ha risolto il problema.
Jonny,

Non sono sicuro di capire dove deve andare questa modifica. Qualcuno può spiegare ulteriormente?
ClairelyClaire,

Puoi rilasciarlo in Functions.php o metterlo in un Plugin. Il successivo rende più facile accenderlo e spegnerlo secondo necessità.
Merl,

1

Quando hai generato il tuo file di esportazione, era su un server live o un localhost? Quella pagina web è ancora accessibile? Se l'importazione del supporto non riesce, significa che le immagini, come collegate dall'XML, arrivano a 404.

Apri il file XML e vedi dove puntano le immagini. Se apriamo il file XML dell'unità tematica, vedremo linee come questa:

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

Tale file è chiaramente disponibile per l'importazione. Cosa dicono i tuoi file allegati_url?


1
Ho menzionato "E le immagini che non sono state caricate sono hotlink dal server precedente che consuma il trasferimento di quel server precedente ..." che indica che le immagini non restituiscono 404, non si trovano su localhost ma generano comunque "Impossibile importare i media ". La mia <wp:attachment_url>dice example.com/2008/06/image.jpg troppo dove example.com è sempre di dominio accessibile. Ecco perché sto ponendo questa domanda :) Chiaramente non funziona anche se le immagini non generano 404. Non funziona nemmeno con wpthemetestdata.files.wordpress.com di tanto in tanto (~ 5 immagini casuali su 30 falliscono).
Paul,

Giusto, scusa, la mia mente è un po 'sfinita a questo punto della notte. Hai qualche tipo di protezione hotlink sul server?
Idee imperative

1
No, è un server accessibile al pubblico con immagini accessibili al pubblico, nessuna protezione. Ma anche se ci fosse una certa protezione, il server di WordPress fa la stessa cosa di tanto in tanto. Vuol dire che questo importatore è solo buggy?
Paolo,

Quello o uno dei server ha un valore di timeout odiosamente breve. Sono fresco di idee per te. L'XML viene importato correttamente in Localhost? Se è così, puoi in qualche modo imbrogliare ... esegui l'importazione localmente, quindi usa WP Migrate DB e clona il risultato per vivere.
Idee imperative

1

Ho avuto difficoltà a importare file multimediali su wordpress.org anche da wordpress.com. Sono riuscito a importare tutti i post, tuttavia le immagini erano ancora collegate al vecchio sito. Stavo quasi piangendo perché mi resi conto che l'unica soluzione era scaricare e caricare manualmente oltre 200 grandi immagini per posta (l'esportazione / importazione di parti più piccole di post non funzionava neanche).

Dopo aver testato alcuni plugin, ne ho trovato uno che importa automaticamente i tuoi media wordpress automaticamente. Non potevo crederci ma in realtà funziona. Devi andare per posta, ma è comunque meglio del download e del caricamento manuali. Ecco il link se qualcuno è interessato


1

Assicurati che il tuo sito non sia impostato su "Privato".

Quando esporti il ​​tuo blog Wordpress, tutto il contenuto testuale è incorporato nel file XML risultante. Tutto il contenuto binario (immagini, file allegati ecc.) Viene esportato come URL che punta alla loro posizione sul blog esistente. Questo è il motivo per cui quando importi da un blog Wordpress privato sarai comunque in grado di importare tutti i post / etc ma tutte le immagini / etc falliranno.

Qui è dove è necessario modificare l'impostazione a partire dalla versione corrente (2017-06-19):

inserisci qui la descrizione dell'immagine

Documentazione Wordpress pertinente:

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

Nota che deve essere fatto dalle impostazioni del tuo account Wordpress.com, non dalle impostazioni del blog stesso, che è un altro potenziale punto di confusione (e frustrazione).


1

Questo problema può verificarsi quando si utilizzano determinati plug-in sul sito remoto / locale.

Idealmente, disabilitare tutti i plug-in su entrambi i siti prima di esportare o importare, quindi riattivarli al termine del processo.

Se stai cercando di evitare di disabilitare TUTTI i plug-in, almeno disattiva tutti i plug-in che influiscono sulle immagini o sulla gestione delle immagini ... il tipo più comune sarebbe probabilmente quello che esegue l'ottimizzazione delle immagini.

Nel mio caso, avevo EWWW Image Optimizer (che consiglio vivamente) attivo sul sito locale e questo ha causato questo errore. L'ho disabilitato, eseguito correttamente l'importazione e riattivato.


0

Ho avuto lo stesso problema e dopo ore di ricerca e test il problema era che il server di origine stava bloccando i download di immagini a causa della "Protezione Hotlink" attiva in cPanel.


Hai ragione. Nel mio caso mi sono reso conto di aver implementato una protezione hotlink nel mio .htaccess. Altri casi sono cPanel o Cloudflare.
John Doe,

0

Per quelli che non vogliono usare add_filter o non hanno idea di come integrarlo senza creare un modulo separato. Ecco un trucco rapido e pratico per farlo.

Apri questo file

vim ./wp-includes/http.php

Vai alla riga 566e commenta il seguente blocco di codice.

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

Dopo aver commentato quelle due righe, entra e aggiungi la riga seguente.

return true;

Vai avanti e salva il file e carica il file XML per riprovare. Ora scaricherai tutto il contenuto correlato. Torna indietro e rimuovi il blocco dei commenti e l'istruzione return e sei a posto.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.