Gagal mengimpor Media

14

Ketika saya menghasilkan file XML dengan [Alat> Ekspor] dan menggunakan [Alat> Impor] di situs WordPress lain saya mendapatkan "Gagal mengimpor Media" untuk setiap jenis posting lampiran. Dan gambar yang gagal dimuat adalah hotlink dari server sebelumnya yang menggunakan transfer dari server sebelumnya ...

Tetapi ketika saya mengunduh "Unit Test" dari http://codex.wordpress.org/Theme_Unit_Test maka masalah ini tidak ada. Beberapa gambar masih memiliki "Gagal mengimpor Media" tetapi hanya seperti 5 dari 30 gambar. Mereka memiliki URL ke server mereka sendiri dalam XML mereka tetapi entah bagaimana [Tools> Import] berhasil mengunduh media mereka dan mengganti URL-URL ini dengan lokasi baru (tidak lagi di-hotlink).

Apa trik untuk membuatnya berfungsi dengan baik tanpa "Gagal mengimpor Media"? Mengapa "Unit Test" bahkan memiliki beberapa pesan "Gagal mengimpor Media"?

Paul
sumber
Karena server tempat Anda mengimpor perlu mendapatkannya dari lokasi lama, Anda tidak hanya harus memeriksa apakah file-file tersebut ada di server lama, tetapi juga apakah server baru dapat mengambilnya. Mungkin sesuatu membatasi permintaan keluar. Sudahkah Anda mencoba mengimpornya di server atau localhost lain? Saya khawatir ini bisa menjadi masalah yang sangat lokal.
kraftner
1
Pada WordPress 4.3.1 (mungkin lebih awal) Anda dapat mendefinisikan IMPORT_DEBUGdan mengaturnya trueuntuk mendapatkan umpan balik yang bermakna alih-alih hanya "Gagal mengimpor media". Saya tidak bisa membayangkan mengapa ini bukan perilaku standar. Itu dapat membantu mempersempit masalah Anda jika cuaca tepat.
Tandai
@Ark di mana file yang bisa saya atur IMPORT_DEBUGopsi
kimliv
2
@kimliv: Anda akan ingin untuk tetap ini di wp-config.php pada akar WordPress Anda menginstal: define ( 'IMPORT_DEBUG', true );.
Tandai
Maaf karena menabrak, memiliki masalah yang sama dan situs asli tempat saya mengimpor SSL tidak berfungsi dan xmlURL aktif https, mengedit xmlfile untuk beralih httpske bantuan http.
Samuel Elh

Jawaban:

12

Saya memiliki masalah yang sangat mirip ketika saya memindahkan Blog WordPress dari satu instalasi WordPress ke instalasi Multisite dengan nama domain yang berbeda tetapi IP yang sama.
Saya menemukan bahwa masalahnya adalah wp_http_validate_urlfungsi yang menjatuhkan URL jika IP sumber sama dengan IP tujuan.
Anda dapat menambahkan filter wp_http_validate_urluntuk mencegah hal ini dan memungkinkan IP sumber dan tujuan yang cocok:

add_filter( 'http_request_host_is_external', '__return_true' );

Silakan lihat jawaban ini untuk penjelasan terperinci tentang kait filter dan mengapa Anda harus menghapusnya setelah impor: /wordpress//a/123313/75573

Merl
sumber
Saya menghabiskan hampir 5 jam mencoba mengimpor posting saya dengan gambar mereka dan ini menyelesaikannya.
Jonny
Saya tidak yakin saya mengerti ke mana harus mengedit ini. Bisakah seseorang menjelaskan lebih lanjut?
ClairelyClaire
Anda dapat menjatuhkannya di functions.php atau memasukkannya ke dalam Plugin. Yang belakangan memudahkannya untuk menghidupkan dan mematikannya sesuai kebutuhan.
Merl
1

Ketika Anda membuat file ekspor Anda, apakah itu di server langsung atau localhost? Apakah halaman web itu masih dapat diakses? Jika impor media gagal, itu berarti gambar, sebagaimana ditautkan dari XML, akan muncul 404.

Buka file XML dan lihat di mana gambar menunjuk. Jika kita membuka file Unit XML Tema, kita akan melihat baris seperti ini:

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

File itu sangat jelas tersedia untuk diimpor. Apa yang dikatakan file attachment_url Anda?

Ide Imperatif
sumber
1
Saya menyebutkan "Dan gambar yang gagal dimuat adalah hotlink dari server sebelumnya yang menggunakan transfer dari server sebelumnya ..." yang menunjukkan bahwa gambar tidak mengembalikan 404, mereka tidak di localhost tetapi mereka masih menghasilkan "Gagal mengimpor Media ". My <wp:attachment_url>mengatakan example.com/2008/06/image.jpg juga di mana example.com selalu dapat diakses domain. Itu sebabnya saya mengajukan pertanyaan ini :) Jelas tidak berfungsi bahkan jika gambar tidak menghasilkan 404. Bahkan tidak berfungsi dengan wpthemetestdata.files.wordpress.com sesekali (~ 5 gambar acak dari 30 gagal).
Paul
Benar, maaf, pikiranku agak lelah pada saat ini di malam hari. Apakah Anda memiliki semacam perlindungan hotlink di server?
Ide Imperatif
1
Tidak, ini server yang dapat diakses publik dengan gambar yang dapat diakses oleh publik, tanpa perlindungan apa pun. Tetapi bahkan jika ada perlindungan, server WordPress melakukan hal yang sama sesekali. Apakah ini berarti importir ini hanya buggy?
Paul
Itu atau salah satu server memiliki nilai batas waktu singkat yang menjengkelkan. Saya baru saja kehabisan ide untuk Anda. Apakah XML mengimpor dengan benar ke Localhost? Jika demikian, Anda dapat menyortir cheat ... lakukan impor secara lokal kemudian gunakan WP Migrate DB dan clone hasilnya untuk hidup.
Ide Imperatif
1

Saya telah berjuang dengan mengimpor media ke wordpress.org dari wordpress.com juga. Saya berhasil mengimpor semua posting namun gambar masih ditautkan ke situs lama. Saya hampir menangis ketika saya menyadari satu-satunya solusi adalah dengan mengunduh dan mengunggah lebih dari 200 gambar besar secara manual melalui pos (mengekspor / mengimpor bagian-bagian yang lebih kecil dari posting juga tidak berfungsi).

Setelah menguji beberapa plugin, saya menemukan satu yang benar-benar mengimpor media wordpress Anda secara otomatis. Saya tidak percaya tetapi itu benar-benar berhasil. Anda harus mengirim posting demi posting tetapi tetap lebih baik daripada mengunduh dan mengunggah secara manual. Inilah tautannya jika ada yang tertarik

Claudia
sumber
1

Pastikan situs Anda tidak disetel ke "Pribadi".

Ketika Anda mengekspor blog Wordpress Anda, semua konten tekstual tertanam dalam file XML yang dihasilkan. Semua konten biner (gambar, lampiran file, dll) diekspor sebagai URL yang menunjuk ke lokasi mereka di blog yang ada. Inilah sebabnya ketika Anda mengimpor dari blog Wordpress pribadi, Anda masih dapat mengimpor semua posting / etc tetapi semua gambar / etc akan gagal.

Di sinilah Anda perlu mengubah pengaturan pada versi curent (2017-06-19):

masukkan deskripsi gambar di sini

Dokumentasi Wordpress yang relevan:

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

Perhatikan bahwa itu harus dilakukan dari pengaturan akun Wordpress.com Anda, bukan dari pengaturan blog itu sendiri, yang merupakan titik kebingungan potensial lainnya (dan frustrasi).

nathanchere
sumber
1

Masalah ini dapat terjadi ketika menggunakan plugin tertentu di situs remote / lokal.

Idealnya, nonaktifkan semua plugin di kedua situs sebelum mengekspor atau mengimpor, lalu aktifkan kembali setelah proses selesai.

Jika Anda mencoba menghindari menonaktifkan SEMUA plugin, maka setidaknya nonaktifkan semua plugin yang memengaruhi gambar atau penanganan gambar ... jenis yang paling umum mungkin adalah yang melakukan optimasi gambar.

Dalam kasus saya, saya mengaktifkan EWWW Image Optimizer (yang sangat saya rekomendasikan) aktif di situs lokal, dan itu menyebabkan kesalahan ini. Saya menonaktifkannya, menjalankan impor dengan sukses, dan mengaktifkannya kembali.

James Revillini
sumber
0

Saya memiliki masalah yang sama dan setelah berjam-jam mencari dan menguji masalahnya adalah bahwa server sumber memblokir unduhan gambar karena "Perlindungan Hotlink" aktif di cPanel.

AMIB
sumber
Kamu benar. Dalam kasus saya, saya menyadari bahwa saya menerapkan perlindungan hotlink di .htaccess saya. Kasus lainnya adalah cPanel atau Cloudflare.
John Doe
0

Bagi mereka yang tidak ingin menggunakan add_filteratau tidak tahu bagaimana mengintegrasikannya tanpa membuat modul terpisah. Berikut ini adalah trik praktis cepat untuk menyelesaikannya.

Buka file ini

vim ./wp-includes/http.php

Pergi ke baris 566dan komentari blok kode berikut.

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

Setelah Anda mengomentari kedua baris tersebut, masuk dan tambahkan baris berikut.

return true;

Silakan menyimpan file dan unggah file XML untuk mencoba lagi. Anda sekarang akan mengunduh semua konten terkait. Kembali menghapus blok komentar dan pernyataan kembali dan Anda baik untuk pergi.

Rick
sumber