WPHizmet

Parse Error: Syntax Error, Unexpected Hatası

Yayınlandı:
Son teknik kontrol:
2 dk okuma
Site erişilemezTema / Eklenti
Parse error: syntax error, unexpected token "}" in /wp-content/themes/tema/functions.php on line 42

Belirtiler

  • “Parse error: syntax error, unexpected …” ile başlayan satır
  • Mesajda bir dosya yolu ve satır numarası var (ör. functions.php on line 42)
  • Hem site hem yönetim paneli açılmıyor veya kritik hata sayfası görünüyor
  • Sorun bir kod parçası ekledikten veya bir dosyayı düzenledikten hemen sonra başladı

Kısa cevap

Parse error, PHP’nin bir dosyayı çalıştırmadan önce okuyamadığı, yani kodda yazım (sözdizimi) hatası olduğu anlamına gelir. Mesaj hangi dosyada ve hangi satırda takıldığını söyler; asıl hata çoğu zaman o satırda veya hemen öncesindedir. En sık nedenler functions.php’ye elle eklenen bir kod parçasında eksik noktalı virgül, kapanmamış süslü parantez veya düz tırnak yerine akıllı tırnak kullanılmasıdır. Çözüm, dosyayı FTP ile açıp son değişikliği geri almaktır.

Önemli noktalar

  • Parse error bir sözdizimi hatasıdır: PHP dosyayı hiç çalıştıramaz.
  • Mesajdaki dosya yolu sorumlu tema veya eklentiyi, satır numarası yeri gösterir.
  • Bildirilen satır, asıl hatanın bir sonraki satırı olabilir — bir satır yukarıya da bakın.
  • Panel içi dosya düzenleyicisi ölümcül hatalı değişikliği geri alır; bu hata çoğunlukla FTP veya dosya yöneticisiyle yapılan düzenlemelerden sonra görülür.
  • Değişiklik yapmadan önce dosyanın bir kopyasını almak, geri dönüşü saniyelere indirir.

Mesajı okumak

Mesajın üç parçası vardır: ne beklenmediği (unexpected …), hangi dosya (in /…/functions.php) ve hangi satır (on line 42). Dosya yolundaki themes/ veya plugins/ sonrasındaki klasör adı, sorunun hangi tema veya eklentide olduğunu söyler.

Mesajdaki ifadeAnlamıNereye bakılır
unexpected token "}", expecting "," or ";"Bir önceki ifadenin sonunda noktalı virgül eksikBildirilen satırın bir üstündeki satırın sonu
unexpected end of fileDosya bitti ama PHP hâlâ bir kapanış bekliyorKapanmamış süslü parantez veya eksik noktalı virgül — genellikle son eklenen blok
Unclosed '{' on line 2Açılan bir süslü parantez hiç kapanmamışMesajda adı geçen satırdaki blok
unexpected identifier "world”"Düz tırnak yerine akıllı tırnak (“ ”) kullanılmışWeb sayfasından veya kelime işlemciden kopyalanan kod
unexpected token "<", expecting end of fileDosyada ikinci bir <?php açılış etiketi varKod parçası dosyaya <?php ile birlikte yapıştırılmış
unexpected double-quoted stringDizide iki öğe arasında virgül eksikBildirilen satırdaki dizi tanımı
Mesajlar PHP 8.2 ile üretildi; eski PHP sürümlerinde ifade biçimi farklıdır (ör. T_STRING gibi simge adları).

Çözüm adımları

  1. FTP veya dosya yöneticisiyle bağlanın

    Panel açılmadığı için düzeltme dosya düzeyinde yapılır. Hosting panelinin dosya yöneticisi de yeterlidir.

  2. Mesajdaki dosyayı açın ve bir kopyasını alın

    Değişiklik yapmadan önce dosyayı bilgisayarınıza indirin; bir şey ters giderse geri koyarsınız.

  3. Son eklenen kodu kaldırın

    Hatayı son eklediğiniz kod parçası yarattıysa en hızlı çözüm onu tamamen silmektir. Site açıldıktan sonra kodu düzeltip yeniden ekleyebilirsiniz.

  4. Satırı düzeltin

    Kodu korumak istiyorsanız bildirilen satırı ve bir üstünü kontrol edin: noktalı virgül, parantez eşleşmesi, tırnak türü.

  5. Siteyi ve paneli kontrol edin

    İkisi de açılıyorsa sorun çözülmüştür. Hata başka bir satıra geçtiyse bir sonraki hatayı aynı yöntemle düzeltin.

Bilgisayarınızda PHP kuruluysa dosyayı yüklemeden önce php -l functions.php komutuyla sözdizimi denetimi yapabilirsiniz; komut dosyayı çalıştırmadan yalnızca yazım hatalarını raporlar.

Kod eklemediyseniz: eklenti ve PHP sürümü

Hata bir eklenti veya tema güncellemesinden sonra başladıysa ve dosya yolu o eklentiyi gösteriyorsa, eklentinin yeni sürümü sunucunuzdaki PHP sürümünün tanımadığı bir sözdizimi kullanıyor olabilir. Örneğin PHP 8 ile gelen match ifadesi PHP 7.4’te parse error verir. Eklentinin gerektirdiği PHP sürümünü sunucunuzla karşılaştırın; kalıcı çözüm için PHP sürümü yükseltme rehberine bakın. Geçici olarak eklentiyi, klasörünün adını değiştirerek devre dışı bırakabilirsiniz.

Sık sorulan sorular

Neden bazen parse error yerine “kritik hata” sayfası görüyorum?
İkisi aynı sorundur. WordPress sözdizimi hatalarını da ölümcül hata olarak yakalar ve hata gösterimi kapalıysa ziyaretçiye genel “kritik hata” sayfasını gösterir. Asıl mesajı hata günlüğünde veya yöneticiye gelen kurtarma modu e-postasında bulursunuz.
Panelden düzenleme yaptım, neden bu hatayı almadım?
Yönetim panelindeki tema ve eklenti dosya düzenleyicisi, kaydettiğiniz değişikliğin ölümcül hataya yol açıp açmadığını kontrol eder ve açıyorsa değişikliği geri alır. FTP veya dosya yöneticisinde böyle bir koruma yoktur.
Satır numarasındaki kod doğru görünüyor.
PHP hatayı fark ettiği yerde bildirir; bu genellikle asıl hatadan sonraki satırdır. Bir veya birkaç satır yukarıya bakın. “unexpected end of file” mesajında ise sorun dosyanın herhangi bir yerinde kapanmamış bir bloktur.

Kaynaklar ve teknik referanslar

Bu hatayı çözemediyseniz

İlgili içerikler