WordPress Hata Ayıklama: Temel Kılavuz

Yayınlanan: 2021-02-11

Hangi düzeyde WordPress geliştiricisi olursanız olun, sürekli olarak karşılaşacağınız bir sorun vardır: hatalar. En deneyimli geliştiriciler bile sürekli olarak hata üretmeyecek şekilde kod yazamazlar. Aslında, WordPress'te hata ayıklamak aslında platform hakkında daha fazla bilgi edinmenize yardımcı olabilir!

Önceden programlama deneyiminiz varsa, derleme veya çalışma zamanında hatalarla karşılaşmış olabilirsiniz. Havluyu atmadığınız ve projeyi atmadığınız sürece, kodun üzerinden geçmek ve sorunu takip etmek için biraz zaman harcamış olabilirsiniz. WordPress ile dinamik aynıdır.

Ortak bir programlama dilinde programlama yaptığınızdan farklı olarak, WordPress hataları sayfaya basitçe yazdırılmaz. Bunun nedeni, hata ayıklama günlüklerinin genellikle veritabanlarının kimlik bilgileri gibi hassas bilgiler içermesidir. WordPress bunun yerine bu günlükleri sunucunuzdaki herkesin erişemeyeceği dosyalara bırakacaktır.

Neyse ki, ABD Ordusu tarafından geliştirilen otuz ton ağırlığındaki bilgisayarların aksine, bunu başarmak için ölü böcekleri kelimenin tam anlamıyla makinenizden kaldırmanız gerekmeyecek! Artık bir bağlamımız olduğuna göre, WordPress hata ayıklama sürecine nelerin girdiğine daha teknik bir göz atalım.

WordPress Hata Ayıklama Açıklaması

Muhtemelen bildiğiniz gibi, WordPress PHP kullanılarak geliştirilmiştir. Bu, hata ayıklamayla ilgili resmi WordPress kılavuzunun ve resmi PHP hata ayıklama kılavuzunun bu süreçte size yardımcı olacak mükemmel kaynaklar olacağı anlamına gelir.

Hata ayıklamak için WordPress, tanımlanmış global bir PHP değişkenine sahip olmanızı gerektirir. Bunu tam olarak nasıl yapacağımızı bir sonraki bölümde ele alacağız.

PHP hata ayıklama sürecinin WordPress hata ayıklama sürecinden nasıl farklı olduğunu ayırt etmek önemlidir. Vanilla PHP ile varsayılan olarak yalnızca iki tür hata gösterilir. Bir tanesi "önemli hata"dır, yani o kadar ciddidir ki sayfa yüklenemez bile. Diğeri ise "hassas bir ölümcül hata" varsa kullanıcıya boş bir sayfa göstermektir. Başka bir deyişle, PHP, tam hata mesajının yazdırılmasının bir güvenlik riski oluşturabileceğini bilir. Bu ayarlar PHP'nin kendisinde kolayca değiştirilebilir.

Öte yandan WordPress, hata ayıklama söz konusu olduğunda biraz daha zor. WordPress hata ayıklamayı etkinleştirir ve özelleştirmezseniz, geliştiriciler için her düzeyde hata, uyarı ve hatta bilgilendirici öğeler görüntülenir. Bu, önemli hatalardan JavaScript'in bir bölümünü nasıl optimize etmeniz gerektiğine dair teknik bir mesaja kadar her şeyin gösterileceği anlamına gelir. Bu, geliştiriciler için son derece yararlı olsa da, muhtemelen kullanıcılara gösterilecek en iyi içerik değildir.

Bir başka benzersiz özellik de, kullanımdan kaldırılan WordPress'e özgü PHP işlevleri hakkında bilgilendirilmenizdir. Kullanımdan kaldırılan işlevler, şu anda hala çalışabilen işlevlerdir, ancak gelecekte onlar için destek kaldırılacaktır. Bu aynı zamanda genellikle aynı işlemi gerçekleştirmenin daha iyi ve daha hızlı bir yolu olduğu anlamına gelir.

Muhtemelen WordPress'te hata ayıklama konusunda heyecanlı olmadığınızı biliyoruz, ancak işlevsel bir blog veya site sürdürmek istiyorsanız bu çok önemlidir. Dosyaları düzenlemeye başlamadan önce, güvenilir bir WordPress yedekleme eklentisi kullandığınızdan emin olun. Bu şekilde, yanlışlıkla sitenizi çalışmaz hale getirirseniz, sadece birkaç tıklamayla her şeyi geri yükleyebilirsiniz!

Şimdi nasıl yuvarlanabileceğimize bir göz atalım!

WordPress'te Hata Ayıklamayı Nasıl Etkinleştiririm?

WordPress hata ayıklama sürecini başlatmak için birkaç satır PHP'ye ihtiyacımız olacak.

Favori metin düzenleyicinizi çalıştırın (en sevdiğiniz metin düzenleyiciniz Windows Not Defteri olmadığı sürece!). Bir tane almanız gerekiyorsa, Notepad++, hemen hemen her programlama dilini destekleyen, yaygın olarak kullanılan, açık kaynaklı bir metin düzenleyicidir.

Ardından, wp-config.php dosyanızın bir kopyasını indirin. Orijinal dosyayı düzenlemeyin! Bitirdikten sonra değiştirilmiş sürümü yükleyeceğiz.

wp-config.php dosyasını metin düzenleyicinizde açtıktan sonra, aşağıdaki kod satırını eklemeniz gerekir. İlk önce, elinizde olmadığından emin olmak için onu arayın; Aynı değişkeni iki kez tanımlarsanız PHP çok mutsuz olur!

 define( 'WP_DEBUG', true );

Tüm bu kod satırı, WP_DEBUG adlı global PHP değişkeninin boolean değerine true olarak ayarlanır.

Aynı şekilde, WordPress hata ayıklama özelliğini kapatmak isterseniz, karşıt kod satırını girmeniz yeterlidir:

 define( 'WP_DEBUG', false );

Bu, hata ayıklamayı açar, ancak çıktı olan bilgiyi nasıl bulacağımızı bilmiyorsak bu pek yardımcı olmaz!

WordPress Hata Ayıklama Günlüğü nerede?

Bu sorunun teknik olarak iki cevabı var ve kesin cevap seçiminize bağlı.

Dediğimiz gibi, bunun bir yolu define( 'WP_DEBUG', true ); içine bırakmaktır. Bu, wp-content/debug.log konumunda yoksa otomatik olarak bir dosya oluşturan (veya varsa dosyaya ekleyen) varsayılan WordPress hata ayıklama günlüğü ayarlarını kullanır.

Ancak, farklı bir yerde istemenizin birkaç nedeni olabilir. Örneğin, üçüncü taraf hata ayıklama aracının erişebileceği bir yerde olmasını isteyebilirsiniz. Hata ayıklama günlüğünün nereye yerleştirildiğini özelleştirmek için hata ayıklamayı şu şekilde etkinleştirebilirsiniz:

 define( 'WP_DEBUG_LOG', '/best-wp-dev/errors.log' );

WordPress Hata Ayıklama Günlüğü Açıklaması

WordPress hata ayıklama günlüğünüzdeki bilgilerin ayrıntı düzeyi, onu nasıl yapılandırdığınıza bağlıdır. Herhangi bir ek değişiklik yapmadan etkinleştirirseniz, hataya neden olan, kullanımdan kaldırılmış bir işlev kullanan veya optimal olmayan hemen hemen her olayı günlüğe kaydedersiniz.

WordPress, PHP'nin üzerine kurulduğundan, günlüğünüz atılan her PHP hatasını ve uyarısını gösterecektir. Ayrıca her olayla ilişkili tarih, saat ve IP adresini de içerecektir. Ne yazık ki, PHP'nin sevmediği kod stili, güçlendirilmesi gerektiğini düşündüğü veri doğrulaması ve daha pek çok şey hakkında (çok) ayrıntılı çıktısını da göreceksiniz.

Özellikle WordPress'te hata ayıklamaya yeni başlayanlar için, günlük dosyasına bakmak oldukça bunaltıcı olabilir. Ancak, yalnızca birkaç öğenin gerekli olduğunu unutmamalısınız.

Hata Ayıklama ve Günlüğe Kaydetme

Aynı hedefe ulaşmayı amaçlasalar da, hata ayıklama ve günlüğe kaydetme arasındaki farkı anlamanız önemlidir. Başka bir deyişle, satır define( 'WP_DEBUG', true ); define( 'WP_DEBUG_LOG', true ); satırından tamamen farklı bir şey yapar.

Hiçbir durumda define( 'WP_DEBUG', true ); kullanmamalısınız. halka açık bir sitede. Bu komut, kendi başına kullanıldığında, hata ayıklama mesajlarını basitçe yazdıracaktır . Bu, hiçbir şeyi günlüğe kaydetmez ve site(leri)nizden veri çalmak için kullanılabilecek bilgileri verir. Sağlam bir WordPress güvenlik eklentisi ile birlikte bunun açık olmadığından emin olmak, teşebbüs edilen siber saldırıların büyük çoğunluğunu engelleyecektir.

iThemes Güvenliği (önceden Daha İyi WP Güvenliği)

Güvenliği Riske Atmadan WordPress Hatalarını Ayıklama

Açıkçası, sitenizde düzenli olarak hata ayıklamanız gerekecek. Ancak, muhtemelen wp-config.php dosyanıza sürekli olarak kod satırları ekleyip çıkarmak istemezsiniz.

Süreci düşünerek, önce genel olarak hata ayıklamayı etkinleştirmemiz gerekecek. Ardından, düzeltmeyi mümkün kılmak için hataları günlüğe kaydettiğimizden emin olmamız gerekir. Ancak, halka bu hataları göstermek istemiyoruz. Hem standart PHP hatalarını hem de WordPress'e özgü hataların gösterilmesini engellememiz gerektiğini unutmayın.

Örnek Güvenli WordPress Hata Ayıklama Kodu

Yukarıda özetlediğimiz işlemi kullanarak, sitenizde güvenli bir şekilde hata ayıklamaya başlamanızı sağlayacak dört kod satırı burada!

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

Yukarıdaki ilk üç satır, WordPress'in dikkat ettiği global PHP değişkenlerini ayarlar. Hata ayıklamayı, günlük kaydı işlevimizi ayarlamayı ve ardından WordPress'e özgü hataları kapatmayı mümkün kılıyoruz.

Şanslar, dördüncü satırın sol alandan çıkmış gibi görünmesidir! Bu satır, WordPress tarafından işlenmeyen PHP hatalarını ele almak içindir. Kötü niyetli kullanıcıların hassas site bilgilerine erişmemesini sağlamak için ele alınacak son temeldir.

WordPress Hata Ayıklama Hatasını Nasıl Düzeltebilirim?

Oldukça sık, geliştiriciler, üzerinde bulunduğumuz dört kod satırını kullanır. Veritabanı bağlantısı hatası gibi bir hatayla karşılaşacaklar, ancak hata ayıklama günlüğünde bununla ilgili hiçbir şey olmayacak. Bunun nedeni, WordPress'in farklı hata ayıklama yöntemleri için farklı global PHP değişkenlerine sahip olmasıdır.

WordPress hatalarını düzgün bir şekilde ayıklamak için wp-config.php dosyanıza birkaç satır daha eklemeniz gereken birkaç senaryoya bakalım.

WordPress JavaScript'te Hata Ayıklama

Bir WordPress siteniz varsa, JavaScript kullanma olasılığı çok yüksektir. Daha yeni geliştiriciler için bu, esasen sitelerin etkileşimli öğelerine güç sağlayan dildir. JavaScript, hata ayıklamanın oldukça sıkıcı olmasıyla ünlüdür. Bunun nedeni, modern sitelerin genellikle JavaScript'in üzerinde çerçeveler kullanması ve bu da uyarıları ve hata mesajlarını daha da karmaşık hale getirmesidir.

Ne yazık ki, WordPress JavaScript'te hata ayıklamayı zorlaştıran tek şey bu değil. JavaScript'in iki temel biçimi vardır: eşzamansız veya "AJAX" ve normal JavaScript. Normal JavaScript doğrusal bir şekilde çalışır; sonuçlanmadan önce bir işlevi yerine getirene kadar bir işlevi çalıştırmaz. Bu, web'in ilk günlerinde işe yaramış olsa da, web uygulamaları için kesmiyor.

AJAX ise WordPress sitenizde arka planda çalışır. JavaScript işlevlerini çalıştırmanıza ve çıktılarını beklemenize izin verir, ancak diğer işlevlerin çalışmasını engellemez. Sitelerin kilitlenmesini önlemek genellikle gereklidir.

WordPress'in komut dosyalarında hata ayıklamak istediğimizi söylemek için başka bir PHP global değişkeni kullanmamızın nedeni, bu hata ayıklama yönteminin çok büyük miktarda veri çıkarmasıdır.

WordPress'in komut dosyalarında hata ayıklamak istediğimizi söylemek için başka bir PHP global değişkeni kullanmamızın nedeni, bu hata ayıklama yönteminin çok büyük miktarda veri çıkarmasıdır. Bunun nedeni, JavaScript ve CSS'nin istemci tarafında, PHP'nin ise sunucu tarafında çalışmasıdır. JavaScript ve CSS nedeniyle WordPress'in karşılaştığı her hatayı çıkarmak için şu satırı eklemeniz yeterlidir:

 define( 'SCRIPT_DEBUG', true);

Bu hem JavaScript hem de CSS (stil sayfası) hatalarını gösterecektir. Ayrıca daha karmaşık AJAX işlemlerinde yardımcı olabilir.

Veri Sorunlarını Düzeltme

Hemen hemen her web sitesi bir veri tabanından bilgi alır. WordPress'in birkaç veritabanı vardır; bazı siteler veritabanlarını ayrı sunucularda, bazıları ise aynı sunucuda tutar. Tüm yapılandırmalar farklı olduğundan, veritabanı bağlantınızda her zaman bir şeylerin yanlış gitme olasılığı vardır.

WordPress'in bir veritabanına bağlanamadığını söyleyen bir hata mesajı alırsanız veya verilerin doğru şekilde çekilmediğini fark ederseniz, muhtemelen hata ayıklamanız gerekecektir. Basitçe standart WordPress hata ayıklama değişkenlerini kullanarak, veritabanıyla ilgili bir hatayla karşılaştığınızda muhtemelen hiçbir şeyin günlüğe kaydedilmediğini fark edeceksiniz.

Bunun nedeni, WordPress'in veritabanıyla ilgili hataları diğer tüm hatalardan ayırmasıdır. Veritabanı hata mesajları genellikle hassas bilgiler içerir ve WordPress geliştiricileri, özel bilgileri yanlışlıkla halka açıklamadığınızdan emin olmak istediler!

WordPress veritabanı problemlerinde hata ayıklamaya başlamak için wp-config.php dosyanıza bir satır daha eklemeniz gerekecek:

 define( 'SAVEQUERIES', true );

Veritabanı Hata Ayıklamaya Dalmak

Diğer global WordPress hata ayıklama değişkenlerimizden farklı olarak, buna özellikle dikkat etmemiz gerekiyor. “SAVEQUERIES”, WordPress'e her sorgunun çalıştırıldığını ve sonuçlarının döndürüldüğünü görmek istediğimizi söyler. Bu, site genelindeki performansa önemli ölçüde zarar verecektir! Bunu sunucunuzda yoğun zamanlarda çalıştırmamaya dikkat edin ve ihtiyacınız olmadığı anda kapatın.

Ayrıca çıktısını biraz farklı şekilde saklar. WordPress, veritabanı hata ayıklama bilgilerini görmek için erişmeniz gereken bir PHP dizi dizisi kullanır. $wpdb adlı PHP global değişkeninde ve sorgular adlı üye dizisinde bulunur. $wpdb->queries içeriğini yazdırarak ulaşabilirsiniz.

WordPress Eklentilerinde Hata Ayıklama

WordPress'in diğer platformlara göre en büyük avantajı, hemen hemen her şeyi yapabilen zengin eklenti kütüphanesidir. Bunu okuyor olabilirsiniz ve dosya içeriğini sürekli olarak değiştirme ihtiyacının lojistiğini düşünerek şimdiden başınız ağrıyor olabilir. Neyse ki, bazı eklentiler WordPress hatalarını ayıklamamıza yardımcı olabilir! Onu bir esinti yapan özellikle popüler olan iki tane var.

WP Hata Ayıklama

WordPress sitesinde bulunan bu, en iyi bilinen WordPress hata ayıklama eklentilerinden biridir. Esasen daha önce bahsettiğimiz süreçleri otomatikleştirir. Kontrol panelinizden birkaç tıklama ile tüm bu PHP global değişkenlerini sitenizde açıp kapatabilirsiniz.

Bu eklentiyi kurduğunuzda, bağlı olduğu bir dizi eklenti de yüklersiniz. Bir bütün olarak, günlüğe kaydetmenize ve karşılaştığınız hataları yorumlamanıza yardımcı olurlar.

Bu araç, hata ayıklama sürecini etkinleştirmek için harikadır, ancak kendi eklentilerinizde hata ayıklamak ve veritabanıyla ilgili WordPress hata ayıklama bilgilerine kolayca bakmak için başka bir eklentiye de ihtiyacınız olacak.

Hata Ayıklama Çubuğu

Adından da anlaşılacağı gibi, Hata Ayıklama Çubuğu, WordPress sitenizin yönetici panelindeki bir çubuktur. WP Hata Ayıklama aracıyla birlikte kullanılabilir.

Daha ileri düzey geliştiriciler için önbelleği, çıktı alınan sorguları, sorguların sonuçlarını ve daha gelişmiş bilgileri görüntülemelerine olanak tanıyan araçlara sahiptir. Bahsettiğimiz gibi, WordPress tüm veritabanı hata ayıklama bilgilerini bir PHP global değişkenine bırakır.

Bu bilgiyi gerçekten görüntülemek için, o diziyi özel bir PHP dosyasında yinelemeniz gerekir. Bu eklenti size kolay bir alternatif sunar. Tüm bu bilgileri sizin için okunması ve anlaşılması oldukça kolay bir biçimde yazdırır. Hatta size veritabanı çağrılarınızı nasıl optimize edeceğiniz konusunda bazı ipuçları verir!

Bonus içeriği alın: Bir WordPress Yedekleme Eklentisi Seçmek için 10 Özellik
Buraya tıklayın

WordPress Temalarında Hata Ayıklama

WordPress temalarında hata ayıklama, genellikle komut dosyalarıyla ilgili PHP global değişkeninin etkinleştirilmesini içerir. Bunun nedeni, temaların istemci tarafı JavaScript ve CSS kullanmasıdır.

İlk olarak, bunun sizin yazdığınız bir tema olduğundan emin olun. Sorun yaşayan üçüncü taraf bir temaysa, o temanın yazarına ulaşmanız gerekir. Bunu kendin yapmak için samanlıkta iğne bulmaya çalışmak oldukça fazla olurdu!

Kendi temanızsa, hata ayıklamayı etkinleştirmek için tartıştığımız adımları uyguladığınızdan emin olun. Hatayı fark etmenize neden olan eylemi gerçekleştirin. Geliştirici Konsolunu web tarayıcınızda F12 tuşuna basarak da etkinleştirebilirsiniz. Bu, süreçte yardımcı olabilecek daha fazla istemci düzeyinde hata mesajı gösterir.

Temanızda hatalara yol açan eylemler gerçekleştirdikten sonra günlüğe bakın. Hatalara neyin neden olduğu hakkında ayrıntılı bilgi olmalıdır. Her şeyi tekrar normale döndürmek için sadece birkaç JavaScript ve/veya CSS ince ayarı yapılması gerekecek!

WordPress Kritik Hatasında Hata Ayıklama

Bir eklenti, tema veya başka bir özel içerik, WordPress sitenizin başarısız olmasına neden olan bir hata oluşturursa, siteniz size arızayla ilgili bir e-posta göndermelidir. Özellikle yeni web yöneticileri için bu üzücü olabilir.

Endişelenmenize gerek yok çünkü sorunu çok kısa sürede çözmek için bu adımlar zincirini takip edebilirsiniz!

  1. WordPress hata ayıklama modunu açtığınızdan emin olun.
  2. Hata günlüğünüze erişin. Ölümcül hata hakkında ayrıntılı bilgiye sahip olmalıdır. Öyleyse, çevrimiçi olarak tam hata kodunu arayın.
  3. PHP sürümünüzü kontrol edin. Şu anda WordPress'in gerektirdiği bu değilse, sunucunuzun kullandığı PHP sürümünü güncellemek sorunu çözebilir.
  4. Hala şansınız yoksa, eklentilerinizi gözden geçirin. Hepsini kapat. Site çalışıyorsa, soruna bir eklenti neden olmuştur. Sorunlu eklentiyi bulana kadar bunları tek tek gözden geçirin. Yazan kişiyle iletişime geçin ve düzeltmelerini isteyin.
  5. Hala sorunu bulamadıysanız, temayla ilgili bir sorun olabilir. Mevcut temanızı varsayılan WordPress temasına döndürmeyi deneyin. Siteniz çalışıyorsa, yazar sorunu çözene kadar temaları geçici olarak değiştirmeniz gerekir.
  6. Nafile? Hatanızı WordPress geliştiricileri forumuna yazın. Size yardımcı olmaktan mutluluk duyacak birçok kullanıcı var.

Toplama

Hata ayıklama WordPress, karşılaştığınız bir dizi sorunu çözmenize yardımcı olabilir. Hangi eklentilerin sorunları olduğunu veya bir temayla ilgili hangi sorununuz olabileceğini size söyleyebilir. Bir WordPress Geliştiricisi olarak hata ayıklama, yalnızca daha iyi bir geliştirici olmanıza yardımcı olmakla kalmaz, aynı zamanda temiz, kaliteli kod üretmenize de yardımcı olur.