Yazınızı bitirdiniz, yayınla düğmesine bastınız ve ekranda şu uyarı belirdi: ‘Güncelleme başarısız. Yanıt geçerli bir JSON yanıtı değil’. Bazen ‘Yayınlama başarısız’ şeklinde de çıkar. Yazdıklarınız kaybolmaz ama yayınlanmaz da. Bu, blok editörle çalışırken en can sıkıcı hatalardan biri.
Sorunun kökeni genelde WordPress’in REST API’siyle ilgilidir. Blok editör (Gutenberg), yazıyı kaydederken sunucuyla REST API üzerinden konuşur ve karşılığında düzgün bir JSON verisi bekler. Beklediği yanıt yerine başka bir şey gelirse, örneğin bir HTML hata sayfası ya da boş bir cevap, editör bunu anlamlandıramaz ve bu uyarıyı verir.
Neden oluyor
- Bir güvenlik eklentisi ya da sunucu ayarı REST API’yi engelliyor.
- Site adresi ile WordPress adresi ayarları birbirini tutmuyor.
- SSL sorunu ya da karışık içerik (http/https karışıklığı) var.
- Bir eklenti, sayfa oluşmadan önce ekrana erken çıktı veriyor ve JSON yanıtını bozuyor.
- .htaccess dosyası bozulmuş ya da kalıcı bağlantı yapısı sorunlu.
Adım adım çözüm
İlk denenecek şey basit ama şaşırtıcı derecede işe yarar. Yönetim panelinde Ayarlar bölümünden Kalıcı Bağlantılar (Permalinks) sayfasına gidin ve hiçbir şey değiştirmeden sayfanın altındaki Değişiklikleri Kaydet düğmesine basın. Bu işlem .htaccess kurallarını yeniden yazar ve REST API yollarının düzelmesini sağlar.
Düzelmezse Site Sağlığı aracına bakın. Araçlar menüsü altındaki Site Sağlığı (Site Health) sayfasında WordPress, REST API’nin erişilebilir olup olmadığını kontrol eder. Burada REST API ile ilgili bir uyarı varsa, sorunun kaynağına dair ipucu verir.
Sonraki adım, Ayarlar bölümündeki Genel sekmesinde WordPress Adresi ve Site Adresi alanlarını kontrol etmek. İkisi de aynı olmalı ve siteniz https kullanıyorsa her ikisi de https ile başlamalı. Bir tanesi http diğeri https ise, karışık içerik sorunu doğar ve REST istekleri başarısız olur.
Bu alanlar doğruysa, suçlu büyük olasılıkla bir eklenti. Özellikle güvenlik eklentileri REST API’yi dış dünyaya kapatabilir. Tüm eklentileri geçici olarak devre dışı bırakın ve yeniden yayınlamayı deneyin. Çalıştıysa, eklentileri teker teker açarak hangisinin engellediğini bulun. Güvenlik eklentisinin ayarlarında REST API ile ilgili bir seçenek varsa, onu yetkili kullanıcılar için açık bırakın.
Eklentilere erişemiyorsanız FTP ile wp-content/plugins klasörünü açıp klasörleri tek tek yeniden adlandırarak aynı işlemi yapabilirsiniz. Erken çıktı veren bir eklenti ya da temada, çoğu zaman bir PHP dosyasının başında ya da sonunda fazladan boşluk olur. Bu boşluk bile JSON yanıtını bozmaya yeter.
Sorunun gerçekten editörle mi yoksa başka bir yerle mi ilgili olduğunu anlamak için klasik editörle test edin. Classic Editor eklentisini geçici olarak kurup aynı yazıyı kaydetmeyi deneyin. Klasik editörde sorun çıkmıyorsa, mesele REST API ya da blok editörün sunucuyla iletişiminde demektir.
SSL ve sunucu tarafı
Siteniz yeni SSL sertifikası aldıysa ve yönlendirmeler tam oturmadıysa, REST istekleri yanlış adrese gidip hata sayfasıyla dönebilir. Tarayıcınızın geliştirici araçlarında Ağ (Network) sekmesini açıp kaydet düğmesine bastığınızda hangi isteğin kırmızıyla işaretlendiğine bakın. O isteğin döndüğü yanıt, sorunun ne olduğunu çoğu zaman açıkça söyler.
Tekrar yaşamamak için
Güvenlik eklentisi kurarken REST API ayarlarını dikkatle gözden geçirin, çünkü aşırı sıkı kurallar editörü felç edebilir. Site taşıdığınızda ya da SSL kurduğunuzda adres ayarlarını ve yönlendirmeleri kontrol etmeyi alışkanlık haline getirin. Yazılarınızı kaydederken ara ara taslak olarak saklamak da, böyle bir hata çıktığında emeğinizin boşa gitmesini engeller.
Bu hata ürkütücü görünse de neredeyse her zaman yapılandırma kaynaklıdır, yani içeriğinizle ilgili bir sorun yoktur. Yukarıdaki adımları sırayla denediğinizde çoğu durumda çözülür. Çözülmezse, hosting desteği sunucu günlüklerine bakarak engelin nerede olduğunu gösterebilir.
Bu işleri kendiniz yapmak yerine profesyonel destek isterseniz, WordPress bakım ve teknik destek hizmetime göz atabilirsiniz.
Bu konunun tüm rehberi: WordPress Hataları ve Çözümleri