WordPress içe aktar, dışa aktar özellikleri, yarattığımız WordPress içeriklerini bir domainden diğerine yada birbaşka CMS sisteminden WordPress’e taşımaya yarayan güzel bir özellik. Kullanması çok kolay ve işlemler genellikle sorun çıkarmıyor. Fakat içe aktaracağınız (XML uzantılı) WXR dosyası büyük ve sunucu özellikleriniz sınırlı ise, bazen işlemler tamamlanamıyor, hatalar oluşuyor.
Burada bahsettiğim büyüklük iki türlü. Dosyanın, mb cinsinden diskte kapladığı alan var. Bir de, XML dosyasından medya dosyalarınıza verilen referanslar var. Eğer referans fazla, indirilecek dosya sayısı çok ve boyutları büyükse “WXR dosya boyutu” küçük olsa dahi problem olabiliyor. (500 Internal Server Error hatası)
Mesela yeni aldığınız temaların küçük boyutlu demo dosyalarını bile içe aktaramamanız bu yüzden. Sorunun kaynağı da belli aslında.
Web sunucuları, her php sayfasının işletilmesi için maksimum bir süre belirliyor. Bu sürede içe aktarma işlemi tamamlanmalı. Yoksa sunucu süreci kesiyor ve bir hata sayfası döndürüyor. Kalıcı çözüm ya süreyi arttırmak yada import işlemi sırasında ajax kullanmak. Fakat süre sunucuyu kiraladığınız firmanın insiyatifinde ve genellikle müdahale etmemize izin verilmiyor. Öte yandan WordPress Importer’ın geliştiricileri de ajax’ı tercih etmemiş. Bu nedenle bizim kendi çözümümüzü üretmemiz gerekiyor.
Son dönemde bu konuda sıklıkla sorun yaşadığımdan 4 farklı alternatif üretmiştim. Birlikte bakalım;
Problemin çözümü için WXR dosyasını bölme
WordPress dışa aktar ile export ettiğimiz WXR yada eXtensive RSS denilen dosyalar, aslında basit XML dosyaları. Kolayca bölmek, küçük boyutlu birkaç dosya haline getirmek mümkün. Bunu yapıp dosya boyutlarını 2mb seviyelerine indirdiğinizde WordPress Importer, tek tek kolayca içe aktarma yapabiliyor. Bölme işlemi şu şekilde yapılıyor;
Gördüğünüz gibi biraz zahmetli. Bu işi otomatik yapan bir yazılım yok mu diye düşündüğünüzde, WXR File Splitter (RSS XML) v1.52 programını buluyorsunuz. Fakat malesef kendisi güncel değil ve sağlıklı çalışmıyor.
“WP Advanced Importer” gibi alternatif “içerik aktarma” eklentileri kullanma
WXR dosyalarını içe aktarma için WordPress’in doğal çözümüne bazı alternatifler geliştirilmiş. Bunlardan biri WP Advanced Importer Plugin. Import işlemini ajax kullanarak yaptığından işlem biraz yavaş ama hatasız tamamlanıyor. Kullanımı şu şekilde;
Eklentinin en güzel alternatifi Attachment Importer diyebilirim. Fakat her ikisinin de şu anki güncel versiyonlarında ortak bir problem var. Eğer verdiyseniz imaj dosyalarının Alt, Description, Caption gibi etiketlerini import etmiyorlar. Yine WP Advanced Importer Plugin, nedense import edilen imaj dosya isimlerinde – karakteri varsa siliyor. “01-01-2015.jpg” gibi olan dosyalar “01012015.jpg” olarak içe aktarılıyor.
WordPress içe aktarma işlemini localhost’ta yapma
Localhost’a WordPress kurup kullananlar bilecektir, hosting firmalarının kiraladığınız sunucu üzerinde müdahalesine izin vermediği birçok özelliği değiştirebilirsiniz. Mesela PHP dosyaları için “max_execution_time” değerini yükseltip, sunucunuzun hafızasını 1024 megabyte’a çıkarabilirsiniz.
Bu nedenle, içe aktarma işlemini, geniş kaynaklar ayrılmış yerel bir WordPress kurulumunda yaparsanız, hata alma olasılığınız düşük olur. Import işlemi başarıyla tamamlandığında WordPress yedekleme konusunda anlattığım yöntemlerle yerel sunucudaki bilgi canlı sisteme aktarılabilir.
php_value upload_max_filesize 64M
php_value post_max_size 64M
php_value max_execution_time 300
Yerel sunucuda süre aşımı problemi yaşamamak için verdiğim kodu .htaccess dosyanıza eklemeniz muhtemelen yeterli olacaktır. Sorun yaşarsanız, “max_execution_time” değerini arttırmanız gerekir.
WP Importer ile WXR dosyasını tekrar tekrar import etme
Büyük boyutlu WXR dosyasını WordPress Importer ile içe aktarmak istediniz ve süreç başarısız oldu. Bu işlemi tekrarlayın. Muhtemelen WP Importer tekrar başarısız olacaktır. Birkaç kez tekrarladığınızda, işlem nihayetinde başarıyla tamamlanacaktır.
Peki neden?
WP Importer, ilk çalışmada 1-100 arası kaydı import eder. 100’de sunucunuz bağlantıyı keser. İkinci denemede herşey baştan başlatılır. Tekrar 1-100 arası kayıt import edilmeye çalışılır fakat onlar zaten sitenizde var olduğundan atlanır. Dolayısıyla kalan sürede 100-198 arası kayıtlar import edilir. Bu şekilde azar azar süre elverdiğince işlem tamamlanıncaya kadar devam edilir. (rakamlar örnek olması amacıyla verilmiştir)
WordPress en sonunda “xxx zaten var” şeklinde uzun bir liste ile birlikte “Hepsi tamamlandı. İyi eğlenceler!” yazısını gösterecektir. Tabi çok çok büyük XML dosyaları ile işlemi bu şekilde tamamlamak için peygamber sabrı gerekir.
- WordPress yedekleme
- All In One WP Security & Firewall eklentisi ile WordPress güvenliğini arttırabilirsiniz
- Wordpress Anti-Adblock eklentilerini kullanarak ziyaretçilere reklam gösterimini arttırabilirsiniz
- iThemes Security eklentisi ile WordPress daha güvenli!
- WordPress içe-dışa aktar özellikleri ile blog içeriğinizi taşıyabilirsiniz.
Teşekkürler çok faydalı bir bilgi.
Merhaba
Dışa aktarmada tüm dosyaları indirip içe aktarma yaptığımızı varsayalım
Sitedeki görseller jpeg. gif. vs. de aynı şekilde aktarılıyor mu?
Merhaba,
Wordpress dışa aktar özelliği dosyaları aktarmaz ama referanslarını içerir. Taşıyacağınız CMS onları eski sitenizden import edebilir. Amacınız siteyi WordPress’ten bir başka CMS’ye taşımak değil de yedekleme yapmak ise WordPress Yedekleme yazısını okumalısınız. Tam bir yedekleme için uygun çözümü orada bulacaksınız.
Birşey daha soracağım
Dosya bölme için
Bendeki Notepat ++ türkçe olduğu için “fold all” ne demek anlayamadım.
Kısayol tuşu ya da türkçesi nedir
Türkçe versiyonda “Tüm blokları kapat” diye adlandırılmış, kısayol tuşu Alt+0.
Çok işime yaradı bir sitemi diğer site ile birleştirmeye çalışırken. Teşekkür ederim.