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.)