Ana Sayfa Wordpress Deprecated: Unparenthesized a ? b : c ? d hatası nedir?

Deprecated: Unparenthesized a ? b : c ? d hatası nedir?

13
0
WPBakery Page Builder (eski adı Visual Composer)
WPBakery Page Builder (eski adı Visual Composer)

Bu hata mesajı aslında PHP 7.4 ve sonrası sürümlerde gelen bir uyarı (deprecated notice). Yani çalışmayı durdurmaz ama gelecekte sorun çıkarabileceğini haber veriyor.

Kodda geçen kısım:

a ? b : c ? d : e

Sorunun Sebebi

Bu yazım şekli belirsizdir çünkü PHP önce hangi koşulu değerlendireceğini net belirleyemez.

  • Önce (a ? b : c) mi çalışacak?
  • Yoksa (c ? d : e) kısmı mı a‘ya göre mi bağlanacak?

Çözüm

PHP artık bu tür ifadelerde parantez konulmasını zorunlu kılıyor. Yani şu şekilde düzenlenmesi gerekiyor:

✅ Doğru kullanım örnekleri:

// 1. Eğer a doğruysa b, değilse (c doğruysa d, değilse e)
a ? b : (c ? d : e);

// 2. Eğer (a ? b : c) doğruysa d, değilse e
(a ? b : c) ? d : e;

Senin Durumunda

/wp-content/plugins/js_composer/include/classes/editors/class-vc-frontend-editor.php dosyasında, 646. satırda böyle bir ifade var. Bu, WPBakery Page Builder (eski adı Visual Composer) eklentisinden geliyor.

  • Bu eklentinin kullandığın sürümü eski ve PHP 7.4+ uyumluluğu için güncellenmemiş.
  • En kolay çözüm → Eklentiyi güncellemek. (Güncel sürümde bu hata düzeltilmiş olur.)
  • Alternatif → Kodun içindeki hatalı satıra gidip parantezleri kendin eklemek. (Ama güncelleme sırasında üzerine yazılacağı için kalıcı çözüm değil.)

CEVAP VER

Lütfen yorumunuzu giriniz!
Lütfen isminizi buraya giriniz