Medya içe aktarılamadı


14

[Araçlar> Dışa Aktar] ile XML dosyası oluşturduğumda ve başka bir WordPress web sitesinde [Araçlar> İçe Aktar] kullandığımda, her ek sonrası türü için "Medya içe aktarılamadı" alıyorum. Yüklenemeyen görüntüler, önceki sunucunun aktarımını tüketen önceki sunucudan hotlink'e bağlanır ...

Ancak http://codex.wordpress.org/Theme_Unit_Test adresinden "Birim Testi" ni indirdiğimde bu sorun mevcut değil. Bazı görüntülerde hala "Medya içe aktarılamadı" ancak 30 görüntünün yalnızca 5'i gibi. XML'lerinde kendi sunucularının URL'leri var, ancak bir şekilde [Araçlar> İçe Aktar] medyalarını indirmeyi ve bu URL'leri yeni konumlarla değiştirmeyi başarıyor (artık hotlink bağlı değil).

"Medya içe aktarılamadı" olmadan düzgün çalışması için hile nedir? Neden "Birim Testi" nin bile birkaç "Medya alınamadı" mesajı var?


İçe aktardığınız sunucunun eski konumdan alması gerektiğinden, yalnızca dosyaların eski sunucuda olup olmadığını değil, aynı zamanda yeni sunucunun bunları getirip getiremediğini de kontrol etmelisiniz. Belki bir şey giden istekleri sınırlar. Başka bir sunucuya veya localhost'a aktarmayı denediniz mi? Korkarım ki bu çok yerel bir sorun olabilir.
kraftner

1
WordPress 4.3.1'den (muhtemelen daha önce) , yalnızca "Medya içe aktarılamadı" yerine anlamlı geri bildirim alacak şekilde tanımlayabilir IMPORT_DEBUGve ayarlayabilirsiniz true. Bunun neden varsayılan davranış olmadığını hayal edemiyorum. Hava uygunsa sorununuzu daraltmanıza yardımcı olabilir.
Mark

@ Hangi dosyada IMPORT_DEBUGseçeneği
belirtebilirim

2
@kimliv: yüklemek WordPress kökünde wp-config.php bu sopa istersiniz: define ( 'IMPORT_DEBUG', true );.
Mark

Maalesef çarpma için, aynı sorunu ben çalışmıyor SSL vardı içe aktarılması hangi orijinal siteyi vardı ve xmlURL'ler üzerinde httpsdüzenleme, xmlgeçiş dosyaları httpsiçin httpyardımcı oldu.
Samuel Elh

Yanıtlar:


12

Bir WordPress Blogunu tek bir WordPress kurulumundan farklı etki alanı adları ancak aynı IP'ye sahip bir Multisite kurulumuna taşıdığımda çok benzer bir sorun yaşadım. Kaynak IP hedef IP ile aynı ise,
sorunun wp_http_validate_urlURL'yi düşüren işlev olduğunu öğrendim .
Bunu wp_http_validate_urlönlemek ve eşleşen kaynak ve hedef IP'lere izin vermek için bir filtre ekleyebilirsiniz :

add_filter( 'http_request_host_is_external', '__return_true' );

Filtre kancasının ayrıntılı açıklaması ve içe aktarmadan sonra neden kaldırmanız gerektiği için lütfen bu cevaba bakın: /wordpress//a/123313/75573


Yazılarımı görüntülerle içe aktarmaya çalışırken yaklaşık 5 saat geçirdim ve bu çözüldü.
Jonny

Bu düzenlemenin nereye gitmesi gerektiğini anladığımdan emin değilim. Birisi daha fazla açıklayabilir mi?
ClairelyClaire.msft

Onu function.php dosyasına bırakabilir veya bir Eklentiye koyabilirsiniz. Daha sonra gerektiğinde açıp kapatmayı kolaylaştırır.
Merl

1

Dışa aktarma dosyanızı oluştururken, canlı bir sunucuda mı yoksa bir yerel ana bilgisayarda mı? Bu web sayfasına hala erişilebilir mi? Medya içe aktarma işlemi başarısız olursa, XML'den bağlandığı şekliyle görüntülerin 404 çıktığı anlamına gelir.

XML dosyasını açın ve görüntülerin nereye baktığını görün. Tema Birimi XML dosyasını açarsak, aşağıdaki gibi satırlar göreceğiz:

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

Bu dosya içe aktarma için çok açık bir şekilde kullanılabilir. Attachment_url dosyalarınız ne diyor?


1
"Yüklenemeyen görüntüler, önceki sunucunun aktarımını tüketen bir önceki sunucudan hotlink'e bağlandı ..." ifadesinden bahsetti. ". Benim <wp:attachment_url>diyor example.com/2008/06/image.jpg çok example.com her zaman erişilebilir alan adıdır. Bu yüzden bu soruyu soruyorum :) Görüntüler 404 oluşturmasa bile açıkça çalışmıyor. Hatta wpthemetestdata.files.wordpress.com ile ara sıra çalışmıyor ( 30'dan ~ 5 rastgele görüntü başarısız oluyor).
Paul

Doğru, üzgünüm, aklım gece bu noktada biraz yanmış. Sunucuda bir tür hotlink koruması var mı?
Emir Fikirleri

1
Hayır, herkesin erişebildiği görüntülere sahip, herkesin erişebileceği bir sunucu, hiçbir koruma yok. Ancak bir koruma olsa bile, WordPress'in sunucusu zaman zaman aynı şeyi yapar. Bu ithalatçının sadece buggy olduğu anlamına mı geliyor?
Paul

Bu veya sunuculardan birinin iğrenç derecede kısa bir zaman aşımı değeri vardır. Senin için yeni fikirlerim var. XML, Localhost'a düzgün şekilde aktarılıyor mu? Öyleyse, bir tür hile yapabilirsiniz ... içe aktarmayı yerel olarak yapın, ardından WP Migrate DB'yi kullanın ve sonucu yaşamak için klonlayın.
Emir Fikirleri

1

Wordpress.com'dan da wordpress.org'a medya aktarmakla uğraşıyorum. Tüm yayınları içe aktarmayı başardım, ancak resimler hala eski siteye bağlıydı. Tek bir çözümün posta yoluyla 200'den fazla büyük resmi manuel olarak indirip yüklemesi olduğunu fark edince neredeyse ağlıyordum.

Bazı eklentileri test ettikten sonra, wordpress medyanızı otomatik olarak ithal eden bir tane buldum. İnanamadım ama aslında işe yarıyor. Postayla posta göndermeniz gerekiyor, ancak yine de manuel indirme ve yükleme işleminden daha iyi. İşte bağlantı Herkes ilgi ise


1

Sitenizin "Özel" olarak ayarlanmadığından emin olun.

Wordpress blogunuzu dışa aktardığınızda, tüm metinsel içerik ortaya çıkan XML dosyasına gömülür. Tüm ikili içerikler (resimler, dosya ekleri vb.) Mevcut blogdaki konumlarını gösteren URL'ler olarak dışa aktarılır. Bu nedenle, özel bir Wordpress blogundan içe aktardığınızda tüm yayınları / vb. İçe aktarabileceksiniz, ancak tüm resimler / vb.

Mevcut ayar (2017-06-19) sürümünden itibaren ayarı değiştirmeniz gereken yer:

resim açıklamasını buraya girin

İlgili Wordpress belgeleri:

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

Bunun, başka bir olası karışıklık (ve hayal kırıklığı) noktası olan blogun ayarlarından değil, Wordpress.com hesabınızın ayarlarından yapılması gerektiğini unutmayın.


1

Uzak / yerel sitede belirli eklentiler kullanılırken bu sorun oluşabilir.

İdeal olarak, dışa veya içe aktarmadan önce her iki sitedeki tüm eklentileri devre dışı bırakın, ardından işlem tamamlandıktan sonra bunları yeniden etkinleştirin.

TÜM eklentileri devre dışı bırakmaktan kaçınmaya çalışıyorsanız, en azından görüntüleri veya görüntü işlemeyi etkileyen tüm eklentileri devre dışı bırakın ... en yaygın tür muhtemelen görüntü optimizasyonu yapan eklentilerdir.

Benim durumumda, yerel sitede EWWW Image Optimizer'ı (son derece tavsiye ederim) aktiftim ve bu hataya neden oldu. Devre dışı bıraktım, içe aktarmayı başarıyla çalıştırdım ve yeniden etkinleştirdim.


0

Aynı sorunu vardı ve sorun arama ve test saat sonra kaynak sunucu cPanel "Hotlink Koruma" etkin olması nedeniyle görüntü indirme engelliyor oldu.


Haklısın. Benim durumumda, .htaccess'ime bir hotlink koruması uyguladığımı fark ettim. Diğer durumlar cPanel veya Cloudflare'dir.
John Doe

0

Kullanmak istemeyen add_filterveya ayrı bir modül oluşturmadan nasıl entegre edeceğini bilmeyenler için . İşte bunu yapmak için hızlı bir hile.

Bu dosyayı aç

vim ./wp-includes/http.php

Satıra gidin 566ve aşağıdaki kod bloğunu yorumlayın.

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

Bu iki satırı çıkardıktan sonra, girip aşağıdaki satırı ekleyin.

return true;

Devam edin ve dosyayı kaydedin ve tekrar denemek için XML dosyasını yükleyin. Şimdi ilgili tüm içeriği indireceksiniz. Yorum bloğunu ve dönüş deyimini kaldırarak geri dönün ve hazırsınız.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.