Teknoloji Rehberleri

WordPress Debug Modu Nasıl Açılır? WP_DEBUG Kullanımı

WordPress’te WP_DEBUG modunu etkinleştirme, PHP hatalarını debug.log dosyasına kaydetme ve wp-config.php ayarlarını yapılandırma adımları.

WordPress’te hata ayıklama (debug) modunu etkinleştirmek için wp-config.php dosyasındaki WP_DEBUG değerini true olarak değiştirmeniz gerekir. Bu özellik, WordPress çekirdeğinde, temalarda ve eklentilerde ortaya çıkan PHP hatalarını, uyarıları ve kullanımdan kaldırılmış işlev bildirimlerini tespit etmeye yardımcı olur. Hataları ziyaretçilere göstermeden kaydetmek için WP_DEBUG_LOG ve WP_DEBUG_DISPLAY ayarlarını da kullanabilirsiniz.

Özellikle bir tema veya eklenti geliştiriyorsanız WordPress’in yerleşik hata ayıklama araçları, sorunların hangi dosyada ve kod satırında oluştuğunu anlamanızı kolaylaştırır. Ancak debug modunun geliştirme ortamlarında kullanılması önerilir. Canlı bir sitede hata mesajlarının ekrana yazdırılması güvenlik riski oluşturabilir.

WordPress debug modu nasıl açılır?

WordPress hata ayıklama modunu açmak için site dosyalarına erişmeniz gerekir. İşleme başlamadan önce sitenizin ve özellikle düzenleyeceğiniz yapılandırma dosyasının yedeğini alın. Mümkünse değişiklikleri önce bir test ortamında gerçekleştirin.

  1. Hosting dosya yöneticisi veya SFTP üzerinden WordPress kurulum klasörüne erişin.
  2. wp-config.php dosyasını bulun. Bu dosya genellikle wp-admin ve wp-content klasörlerinin bulunduğu ana dizindedir; bazı kurulumlarda bir üst dizine taşınmış olabilir.
  3. Dosyayı bir metin düzenleyiciyle açın.
  4. define( 'WP_DEBUG', false ); satırını bulun.
  5. false değerini true olarak değiştirin.
  6. Dosyayı kaydedin.

Hata ayıklama modunu etkinleştiren temel kod şöyledir:

define( 'WP_DEBUG', true );

Bu ayar WordPress’in hata ayıklama modunu açar. Ancak yalnızca WP_DEBUG kullanıldığında hata mesajları sayfanın üzerinde görüntülenebilir. Bu nedenle hata kayıtlarını ayrı bir dosyada tutmak daha kontrollü bir yöntemdir.

WordPress hata kayıtlarını debug.log dosyasına kaydetme

Hataları ekranda göstermek yerine bir günlük dosyasına kaydetmek için aşağıdaki yapılandırmayı kullanabilirsiniz:

define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );
@ini_set( 'display_errors', 0 );

Bu yapılandırma WordPress hata ayıklama modunu etkinleştirir, hata kaydını açar ve PHP hata mesajlarının ziyaretçilere gösterilmesini engellemeyi amaçlar.

WordPress’in standart kurulumunda günlük dosyası genellikle şu konumda oluşturulur:

wp-content/debug.log

Dosyanın oluşabilmesi için WordPress’in ilgili konuma yazma izninin bulunması gerekir. Dosya henüz görünmüyorsa kaydedilecek bir hata oluşmamış olabilir veya sunucunun dosya yazma izinleri kontrol edilmelidir.

Önemli: debug.log dosyası sunucu dosya yolları, hata ayrıntıları ve hassas bilgiler içerebilir. Bu dosyanın internet üzerinden herkes tarafından okunabilir olmamasını sağlayın. Mümkünse günlük kayıtlarını web üzerinden erişilemeyen güvenli bir dizinde saklayın.

WP_DEBUG kodu wp-config.php dosyasında nereye eklenir?

Hata ayıklama ayarları, wp-config.php dosyasında WordPress yüklenmeden önce tanımlanmalıdır. Standart yapılandırmada kodu aşağıdaki yorum satırından önce yerleştirin:

/* That's all, stop editing! Happy publishing. */

Dosyanızdaki yorum metni WordPress sürümüne veya kullanılan dile göre farklı olabilir. Önemli olan debug sabitlerini WordPress’in başlangıç işlemlerinden önce tanımlamaktır.

Eğer dosyada zaten WP_DEBUG tanımı bulunuyorsa aynı sabiti ikinci kez eklemeyin. Mevcut değeri değiştirin. Aynı sabitin birden fazla tanımlanması PHP uyarılarına ve beklenmeyen yapılandırma davranışlarına neden olabilir.

WP_DEBUG, WP_DEBUG_LOG ve WP_DEBUG_DISPLAY ne işe yarar?

WordPress hata ayıklama sistemindeki üç temel ayar farklı görevler üstlenir.

Ayar Görevi
WP_DEBUG WordPress hata ayıklama modunu etkinleştirir.
WP_DEBUG_LOG Hataların günlük dosyasına kaydedilmesini sağlar.
WP_DEBUG_DISPLAY Hata mesajlarının sayfa üzerinde gösterilip gösterilmeyeceğini kontrol eder.
SCRIPT_DEBUG WordPress çekirdeğindeki geliştirme amaçlı JavaScript ve CSS dosyalarının kullanılmasını sağlar.
SAVEQUERIES Veritabanı sorgularını ve çalışma sürelerini analiz amacıyla bellekte toplar.

WP_DEBUG_LOG ve WP_DEBUG_DISPLAY ayarlarının WordPress’in hata ayıklama mekanizmasında etkili olabilmesi için WP_DEBUG değerinin etkin olması gerekir.

WordPress PHP hata mesajları nasıl görüntülenir?

Yerel geliştirme ortamında PHP hata mesajlarını doğrudan sayfa üzerinde incelemek isteyebilirsiniz. Bunun için aşağıdaki ayarlar kullanılabilir:

define( 'WP_DEBUG', true );
define( 'WP_DEBUG_DISPLAY', true );
@ini_set( 'display_errors', 1 );

Bu yapılandırmada PHP uyarıları ve hata mesajları, ilgili isteğin özelliklerine bağlı olarak sayfada görüntülenebilir. Örneğin bir eklentinin yanlış dosya çağırması veya bir fonksiyonun hatalı kullanılması durumunda hata hakkında teknik bilgi görebilirsiniz.

Ancak bu yöntemi yalnızca yerel geliştirme veya dışarıdan erişimi sınırlandırılmış test ortamlarında kullanın. Canlı sitelerde PHP dosya yollarının, uygulama ayrıntılarının ve hata içeriklerinin ziyaretçilere gösterilmesi güvenli değildir. Ayrıca Ajax ve REST API gibi bazı isteklerde hata mesajları normal sayfa çıktısında görüntülenmez.

SCRIPT_DEBUG ile JavaScript ve CSS hata ayıklama

WordPress geliştirme sırasında JavaScript veya CSS dosyalarıyla ilgili bir sorunu araştırıyorsanız SCRIPT_DEBUG sabitinden yararlanabilirsiniz.

define( 'SCRIPT_DEBUG', true );

Bu ayar, WordPress’in çekirdek JavaScript ve CSS dosyalarının küçültülmüş sürümleri yerine geliştirme sürümlerini yüklemesini sağlar. Böylece özellikle WordPress çekirdeğindeki dosyaları incelerken kodları takip etmek kolaylaşabilir.

SCRIPT_DEBUG tek başına JavaScript hatalarını bir günlük dosyasına kaydetmez veya bütün tema ve eklenti dosyalarını otomatik olarak hata ayıklama moduna geçirmez. Tarayıcı tarafındaki hatalar için geliştirici konsolunu da incelemek gerekir.

WordPress veritabanı sorguları nasıl kontrol edilir?

Yavaş çalışan sayfaların veya veritabanı işlemlerinin nedenini araştırmak için WordPress’in SAVEQUERIES özelliği kullanılabilir.

define( 'SAVEQUERIES', true );

Bu özellik veritabanı sorgularını, çalışma sürelerini ve çağrı bilgilerini $wpdb->queries dizisinde toplar. Geliştiriciler bu bilgilerden yararlanarak gereksiz veya yavaş sorguları tespit edebilir.

Ancak sorguların bellekte tutulması ek kaynak tüketimine neden olur. Bu nedenle SAVEQUERIES yalnızca gerekli hata ayıklama işlemleri sırasında açılmalı, inceleme tamamlandığında kapatılmalıdır.

WordPress debug.log dosyası oluşmuyorsa ne yapılmalı?

WP_DEBUG_LOG etkin olduğu hâlde hata kayıt dosyası oluşmuyorsa şu noktaları kontrol edin:

  • WP_DEBUG değerinin true olduğunu doğrulayın.
  • WP_DEBUG_LOG ayarının da etkin olduğundan emin olun.
  • wp-content dizininin yazma izinlerini kontrol edin.
  • wp-config.php dosyasında aynı sabitin birden fazla tanımlanmadığını inceleyin.
  • Henüz günlük dosyasına yazılacak bir hata oluşmamış olabileceğini hesaba katın.
  • Sunucunun PHP hata kayıtlarını farklı bir konumda saklayıp saklamadığını kontrol edin.

Hataların günlüğe yazılması, kullanılan hosting yapılandırmasından ve dosya sistemi izinlerinden etkilenebilir. Bu nedenle debug.log dosyasının oluşmaması tek başına WordPress’in sorunsuz çalıştığını göstermez.

WordPress debug modu nasıl kapatılır?

Hata ayıklama işlemini tamamladıktan sonra wp-config.php dosyasındaki WP_DEBUG değerini yeniden false yapabilirsiniz.

define( 'WP_DEBUG', false );
define( 'WP_DEBUG_LOG', false );
define( 'WP_DEBUG_DISPLAY', false );
@ini_set( 'display_errors', 0 );

Bu ayarlar WordPress’in yerleşik hata ayıklama modunu ve ona bağlı günlük kaydını kapatır. Sunucunun bağımsız PHP hata kayıtları ise kendi yapılandırmasına göre çalışmaya devam edebilir.

Daha önce SCRIPT_DEBUG veya SAVEQUERIES özelliklerini etkinleştirdiyseniz bunları da kapatın. Oluşturulmuş debug.log dosyası otomatik olarak silinmez; gerekli kayıtları güvenli biçimde sakladıktan sonra dosyayı temizleyebilir veya kaldırabilirsiniz.

WordPress’te WP_DEBUG kullanımı, tema ve eklenti geliştirme sürecinde hataları tespit etmenin en temel yöntemlerinden biridir. WP_DEBUG_LOG ile hata kayıtlarını incelemek ve WP_DEBUG_DISPLAY ile ekrana yazdırmayı kapatmak, özellikle kontrollü hata araştırmalarında daha güvenli bir yapılandırma sağlar. Kalıcı çözüm ise günlükte görülen hataların nedenlerini belirleyip ilgili tema, eklenti veya özel kod üzerinde düzeltmektir.