Bir WordPress kullanıcısıyla ortaya çıkabilecek en korkunç şeylerden biri bir eklenti yüklemeniz ve etkinleştirme üzerine beyaz bir ölüm ekranı elde etmenizdir.
Bir zamanlar güzel hazırlanmış web sitenizin bir zamanlar yaşadığı bu ekran artık düz beyaz veya bir veya iki tane formatsız metin üretiyor.
Bir eklenti çatışması, iki eklentiniz yüklü olduğunda ve her ikisi de iyi çalışırken, onları birlikte çalıştırmak siteyi kırar.
Genellikle eklentiler birlikte çalıştığında olur ve her ikisi de aynı veya benzer kütüphane işlevleriyle paketlenir. Bir adlandırma çatışması var ve PHP bir hata üretiyor.
Bu makalede bunların nasıl düzeltileceği tartışılacaktır.
Eklenti çatışmaları daha nadir hale geliyor
Her şeyden önce, eklenti çatışması: Birinin başka bir eklenti ile çelişen bir eklenti yüklediği yerde daha nadir hale geliyor.
WordPress, son birkaç yılda, eklentiyi tam olarak etkinleştirmek yerine bir hata oluşursa, otomatik olarak geri izleyecek, bir hata sağlayacak ve eklentiyi devre dışı bırakacak şekilde korumalar getirdi.
Kullanıcıların çoğunluğu için gördükleri budur.
Bu noktada, bu eklenti ile bir evreleme ortamında bir araştırma yapılmalıdır, ancak benzersiz bir eklenti olmadıkça, kurulumunuzla çelişmeyen bir alternatifin bulunması gerekebilir.
Eklenti çatışmaları, FTP gibi bir hizmet aracılığıyla bir zorunluluk (MU) eklentisini yüklediğinizde ortaya çıkma eğilimindedir, bir veya daha fazla eklentinin güncellenmesi gerçekleşir veya özel bir eklentiniz etkinleştirilir ve değişiklikler sunucuya itilir.
Eklenti çatışmalarını çözme sürecim boyunca size yol göstereceğim.
WordPress'e erişiminiz var mı?
Başlamak için, sormanız gereken ilk soru WordPress'e erişiminiz olup olmadığıdır.
Bunu yaparsanız, geleneksel bilgelik, alınacak hareketin tüm eklentileri devre dışı bırakmak ve varsayılan bir temaya geçmek, sorunun nerede meydana geldiğini denemek ve gidermek olduğunu belirler.
Bunu canlı bir sitede yapıyorsanız, bu ideal değildir, çünkü site hala çok fazla işlevselliğe sahip olabilir.
Farklı bir yaklaşım, sağlık kontrolü ve sorun giderme eklentisini kurmaktır. Bu eklentiyi yüklemek, sitenin bir sürümünü varsayılan bir tema ile çalıştırmanıza izin verir ve eklentiler yüklenmez.
Soruna neden olanı tanımlayana kadar her eklentiyi sırayla etkinleştirin ve ardından bunu devre dışı bırakın.
Özel temalar, siteyi düşürebilecek eklentilerde işlevselliği kullanabileceğinden, temanın etkinleştirilen son şey olduğundan emin olun.
WordPress'e erişiminiz yoksa
WordPress'e erişiminiz yoksa, sorunu teşhis etmek ve düzeltmek için biraz bir süreç olabilir.
Bu yaklaşım, eklenti çatışmalarını teşhis ederken elimden geldiğince en iyi aldığım şey. Bilginize ve neye erişebileceğinize bağlı olarak herhangi bir sırayla yapılabilir.
İdari e -postaya erişiminiz var mı? Bir e -posta alabilirsiniz
WordPress ile yönetici e -postasına erişiminiz varsa ( Ayarlar> Genel), bir e -posta alabilirsiniz.
Bu, siteyi kurtarma moduna koymanıza izin verecektir. Oradan giriş yapabilirsiniz ve sorunu olan eklentiyi tanımlar ve onu devre dışı bırakabilirsiniz.
Ana bilgisayarların günlük dosyasını kontrol edin
İlk adım, ana bilgisayarın günlük dosyasını kontrol etmek olacaktır.
Ana bilgisayara bağlı olarak, ana bilgisayarınızın kontrol panelinde veya cpanel içinden kolayca görülebilir, ancak yalnızca bir dosya tarayıcınız varsa, / public_html / veya / / www / (halka açık olan) dışına konma eğilimindedir. Genellikle, / logs / adlı bir dosyada bir seviye, bulunduğu yerde olma eğilimindedir.
Dosyayı bulursanız (error_log gibi bir adı olmalıdır), indirin ve belgede, belki de en altta olan ölümcül bir hata arayın.
Hata mesajı içinde, dosya sorunlarının nerede meydana geldiğini belirleyecek birkaç dosya konumunuz olmalıdır.
Kütük yok mu? Onları etkinleştirmeniz gerekebilir
Siteye FTP/SFTP erişiminiz varsa ancak günlük yoksa, bunları etkinleştirmeniz gerekebilir.
WordPress'in kök dizini içinde, wp-config.php dosyasına aşağıdaki satırları ekleyin.
define( 'WP_DEBUG', true ); define( 'WP_DEBUG_LOG', true ); define( 'WP_DEBUG_DISPLAY', false ); @ini_set( 'display_errors', 0 );
Bu, WP-Content/ klasöründe bir Data Defug.log oluşturur. Oradan, bu dosyadaki hataları görebilirsiniz.
Güvenlik İpucu: Debug.log herkese açık olarak görülebilir, bu nedenle sorunu düzelttikten sonra, bu satırları wp-config.php'den kaldırın ve debug.log dosyasını silin.
Bu eklenti çatışmalarını çözme
Hangi yöntemi kullanırsanız kullanın, günlükleriniz aşağıdaki gibi çizgiler üretmelidir:-
Fatal error: Cannot redeclare hello_dolly_get_lyric() (previously declared in/wp-content/plugins/broken-plugin/index.php:17) in /wp-content/plugins/hello-dolly/hello.php on line 46
Her öğe şu anlama geliyor:
- “Ölümcül hata” Hatayı belirler. PHP'deki ölümcül bir hata, sitenin hemen çalışmayı durdurduğu anlamına gelir. Başka hatalar veya uyarılar alabilirsiniz.
- “Hello_dolly_get_lyric ()” ölümcül hatadır. Bu durumda, aynı adı taşıyan iki PHP fonksiyonu vardır (hello_dolly_get_lyric ()). Bu, eklenti çatışmasının temelidir.
- “/Wp-content/plugins/hello-lylol/hello.php çevrimiçi 46 “ Bu hatanın nerede oluştuğunu söyler. Çizgi numarası önemli olmasa da (kendinizi kodlamadığınız sürece), eklenti hatasının gerçekleştiği eklentiyi söyler-bu durumda “Hello-Dolly”.
Bir sonraki adım, eklentiyi manuel olarak değiştirmektir.
Seçtiğiniz FTP programında veya dosya yöneticisinde, WordPress'teki eklenti klasörüne gidin-/wp-content/eklenti/bu durumda-eklenti klasörünü yeniden adlandırın (bu durumda “Hello-Dolly” i “kırık-hello-dolly” olarak değiştirin). Bu, WordPress'e giriş yaptığınızda eklentiyi devre dışı bırakacaktır.
Önleyebiliyorsanız WordPress eklentisini silmemek iyi bir fikirdir. Bu, söz konusu eklentinin deaktivasyonunu zorlayacaktır.
Oradan, iki eklentiyi araştırabilir ve iki işlevin neden iki kez çağrıldığını belirleyebilirsiniz.
Geliştiriciler için: İyi uygulama eklenti çatışmalarını önleyebilir
WordPress sitelerini oluşturan bir geliştirici iseniz, iyi uygulamaları takip etmek eklenti çatışmalarını önleyebilir.
Eklentilerinizin veya WordPress sitelerinizin diğer eklentilerle eklenti çatışmalarını önlemek için bazı ipuçları:
- PHP ad alanları kullanmıyorsanız, sınıflarınızı veya işlevlerinizi bir önekle adlandırmanızı tavsiye ederim. Plugin_name_function_name gibi bir şey, benzer işlevselliğin aynı işlev adına sahip olmasını önleyebilir. Onları benzersiz hale getirmeye çalışın (bu yüzden WP_'yi önek olarak kullanmayın).
- İşlevlerinizin zaten varsa yüklenmesini önlemek için işlevlerinizin etrafında function_existleri kullanmak.
- İşlevleri içe aktarıyorsanız, class_exists kullanmak, sınıfın zaten yüklenip yüklenmediğini kontrol edebilir.
- İşlevselliğinizi geç yüklemek, eklenti klasörünüzü geç alfabe harfiyle adlandırmak faydalıdır. Her geliştirici sizinle aynı yaklaşımı takip etmiyor!
- Bir sitede inşa ediyorsanız, sunucu kurulumunuzun canlı ortamla aynı (veya aynı olmaya yakın) olduğundan emin olun.
Eklentinizi asla tamamen garanti etmeyeceksiniz veya tema, WordPress alanında bulunan milyonlarca eklenti ile çelişmez.
Bununla birlikte, yukarıdaki adımları izleyerek, çatışmayı mümkün olduğunca en aza indirebilirsiniz ve kod yazmanızdaki basit değişiklikler, daha sonra cehennemde hata ayıklama dünyasını önleyebilir.
Daha fazla kaynak:
Öne Çıkan Resim: Whiskerz/Shutterstock
Bir yanıt yazın