Declaration Must Be Compatible Hatası Nasıl Çözülür (PHP 8 Sonrası WordPress)

Son doğrulama: Ekim 2026 · cPanel 136 test hesabında denendi

Hızlı çözüm

Declaration must be compatible hatası (Fatal error: Declaration of Sinif::metot() must be compatible with ...), bir eklenti ya da temanın PHP 8 ile uyumsuz kod içerdiğini gösterir. Hata metnindeki dosya yolu sorunlu eklentiyi söyler.

  1. Hata metnindeki wp-content/plugins/ ya da wp-content/themes/ sonrasındaki klasör adını not edin.
  2. O eklentiyi ya da temayı güncelleyin; yönetim paneline giremiyorsanız klasörünün adını değiştirerek devre dışı bırakın.
  3. Acil durumda cPanel → Yazılım → MultiPHP Yöneticisi‘nden PHP sürümünü geçici olarak bir alt sürüme alın.
  4. Güncelleme yoksa eklentinin yerine güncel bir alternatif kullanın ve PHP sürümünü geri yükseltin.
Panel cPanel (MultiPHP Yöneticisi, Dosya Yöneticisi), WordPress yönetim paneli
Sistem Paylaşımlı hosting, PHP 8.0 ve üstü
Yetki cPanel kullanıcısı; WordPress yöneticisi
Narhost ürünü WordPress Hosting

Başlamadan önce

  • Hata metninin tamamını kopyalayın; dosya yolu ve satır numarası çözüm için gerekir.
  • Sitenin ve veritabanının yedeğini alın.
  • Hatanın PHP sürümü değiştikten ya da bir güncellemeden hemen sonra başlayıp başlamadığını not edin.

Declaration must be compatible hatası neden olur

PHP’de bir sınıf başka bir sınıftan türetildiğinde, üst sınıftaki bir metodu yeniden yazan alt sınıf aynı parametre ve dönüş türü kurallarına uymak zorundadır. PHP 7’de bu kurala uymayan kod çoğu durumda yalnız uyarı üretiyordu. PHP 8.0 ile birlikte uyumsuz metot imzası her durumda ölümcül hataya dönüştü; kararın gerekçesi PHP RFC sayfasında.

Bu yüzden declaration must be compatible hatası çoğu zaman PHP sürümü yükseltildikten sonra, uzun süredir güncellenmemiş bir eklenti ya da temada ortaya çıkar. WordPress çekirdeği ve güncel eklentiler PHP 8 ile uyumludur; sorun neredeyse her zaman eski bir bileşendedir.

declaration must be compatible çözüm şeması — hata yolu, güncelleme, klasör adı ve PHP sürümü
Hata yolundaki klasör sorunlu bileşeni gösterir; kalıcı çözüm güncel sürümdür.

Adım adım çözüm

  1. Sorunlu bileşeni bulun. Hata metnindeki yolda /wp-content/plugins/eklenti-adi/ ya da /wp-content/themes/tema-adi/ bölümü hatanın kaynağını gösterir. WordPress kritik hata e-postası gönderdiyse aynı bilgi orada da yazar.
  2. Yönetim paneline girebiliyorsanız güncelleyin.Eklentiler sayfasında sorunlu eklentiyi güncelleyin ya da devre dışı bırakın. Güncelleme yöntemi WordPress eklentileri nasıl güncellenir kartında.
  3. Panele giremiyorsanız klasörü yeniden adlandırın.cPanel → Dosyalar → Dosya Yöneticisi‘nde public_html/wp-content/plugins/ klasörünü açın, sorunlu eklentinin klasörüne sağ tıklayıp Yeniden Adlandır‘ı seçin ve adın sonuna -kapali ekleyin.
    declaration must be compatible hatasında eklenti klasörünü yeniden adlandırmak için cPanel Dosya Yöneticisi
    Eklenti klasörü wp-content/plugins altında yeniden adlandırılarak devre dışı bırakılır.

    Beklenen sonuç: WordPress eklentiyi bulamaz ve devre dışı sayar; site açılır. Tema kaynaklıysa aynı işlem wp-content/themes/ altında yapılır ve WordPress varsayılan temaya geçer.

  4. Gerekirse PHP sürümünü geçici düşürün. Eklentiyi hemen kapatamıyorsanız cPanel → Yazılım → MultiPHP Yöneticisi‘nde alan adını işaretleyip bir alt sürümü seçin ve Uygula‘ya basın. Ayrıntılar cPanel’de PHP sürümü nasıl değiştirilir kartında.
    cPanel MultiPHP Yöneticisi ekranında alan adının PHP sürümü
    Alan adı işaretlenip listeden sürüm seçilir ve Uygula’ya basılır.

    Beklenen sonuç: site eski sürümle açılır. Bu geçici bir önlemdir; desteği biten sürümler güvenlik yaması almaz.

  5. Kalıcı çözümü uygulayın. Eklentinin güncel sürümü yoksa ya da geliştiricisi bırakmışsa yerine aynı işi yapan güncel bir eklenti kurun, eski klasörü silin ve PHP sürümünü yeniden yükseltin.

Dikkat

Eklenti dosyalarındaki kodu elle düzeltmeyin. İlk güncellemede değişiklik silinir ve hata geri gelir; eklentinin başka bir yerinde aynı sorun olabilir. Kalıcı çözüm güncel bir sürümdür.

Doğrulama

Sonuç

Site ve yönetim paneli hata vermeden açılıyor, Araçlar → Site Sağlığı ekranında PHP sürümü güncel görünüyor ve wp-content/debug.log dosyasında declaration must be compatible satırı yeni kayıt üretmiyorsa sorun giderilmiştir. Hata ayıklama günlüğünün açılması WordPress belgesinde anlatılır.

Hâlâ çözülmediyse

Narhost desteği

Talebe şunları ekleyin: alan adı, hata metninin tamamı, sitenin PHP sürümü, hatadan önce yapılan güncelleme ya da sürüm değişikliği.

Destek talebi aç

Sıkça sorulan sorular

Bu hata WordPress’in kendisinden mi kaynaklanır?

Hayır. WordPress çekirdeği PHP 8 ile uyumludur. Hata metnindeki dosya yolu neredeyse her zaman bir eklenti ya da tema klasörünü gösterir; çözüm o bileşeni güncellemek ya da değiştirmektir.

PHP sürümünü düşürmek güvenli mi?

Kısa süreli bir önlem olarak sorun çıkarmaz, ama kalıcı çözüm değildir. Desteği biten PHP sürümleri güvenlik yaması almaz. Sorunlu eklentiyi düzelttikten sonra sürümü yeniden yükseltin.

Return type should be compatible uyarısı aynı şey mi?

Benzerdir ama daha hafiftir. PHP 8.1 ve sonrasında görülen bu ileti çoğu zaman bir kullanımdan kaldırma bildirimidir ve siteyi durdurmaz. Yine de eklentinin güncel olmadığını gösterir; güncellemek iyi olur.

Bu makale sorununuzu çözdü mü?

Çözemediniz mi?

Teknik ekibimiz sunucu tarafındaki ayarları sizin için kontrol edebilir. Destek talebinizde alan adınızı ve aldığınız hata metnini paylaşmanız süreci hızlandırır.

İlgili çözümler