@toscho, bu düşünceye, tekrar düşünmemi sağlayan bir yorum yaptı . Dünya çapında, özellikle de benzeri ülkelerle ilgili olarak ne kadar güven duymalıyız $post
?
Ne olmuş yani? Genel değişken, kontrolünüz yapılmadan önce herkesin üzerine yazılabilir. Global değişkenlerin amacı bu: global erişim.
$post
örneğin, kesinlikle temanın içinde ya da eklentiler tarafından en çok modifiye edilen küresellerden biridir. Yine de, örneğin ilgili gönderileri ayarlamak için, belirli bir şablon içindeki diğer uygulamalarda en yaygın kullanılan globaldir.
Özel sorguların kullanımının neden olduğu belirli sorunları olan birkaç gönderiyi yanıtlamak (ve yorumlamak) yerine, çoğu sorunun sıfırlanmayan özel sorgular nedeniyle ortaya çıktığı (özel sorgular ana sorgu tarafından belirlenen küreleri değiştirir) ortaya çıkmaktadır.
Bundan, $post
güvenilir olmadığı açıktır . Özel bir sorguyu kullanan kötü yazılmış herhangi bir kod parçası, $post
genel olarak değiştirebilir ve bu da bir şeyleri kırar (ilgili yazılar gibi).
Yalnızca bir avuç WordPress geliştiricisi, çekirdeğin iç işleyişinde yeterince bilgilidir ve neyin kaçınıp neyin kaçınmayacağını bilir. Daha fazla kullanıcı popülasyonunun WordPress çekirdeğinin nasıl çalıştığı hakkında hiçbir fikri yok.
Onlar sadece bir tema indirir ve gerekli olanı yapmak için eklentileri yüklerler, hatta bir öğreticiden kodu kopyalarlar. İlgili yazılarını tek yazılarına ayıran kötü yazılmış bir eklenti yüklediklerini söyleyin, buna neyin neden olduğunu nasıl anlayacaklar? Bunu kendi başlarına çözebilecekler mi veya tema yazarına bu sorun hakkında bir e-posta yazacak veya bu siteye bir soru gönderecek yüzüncü kişi olacak mı?
Sorum şu: Genel bir $post
benzeri güvenilmez olduğunda, ithal edilen diğer kodların neden olduğu bu sorunlara karşı nasıl korunabilirsiniz ? Hiç böyle bir global kullanıyor muyuz $post
? Alternatifler neler?
Karar vermeden önce aklımı burada paylaşmak: Global'in ana sorgunun sıfırlandığından emin olmak için kullanmadan wp_reset_postdata()
ya da kullanmadan wp_reset_query()
önce ya da bazı temalarda ve eklentilerde de gördüm . Fakat neden başkası eklentisini düzgün bir şekilde kodlamadığı için kodumu temamda şişirmeliyim? Birisi özel sorgusunu düzgün bir şekilde sıfırladıysa, bu işlem gereksiz bir ikinci kez yapılır, bu iyi bir şey değildir.$post
$post
Düşündüğüm ikinci yöntem ise yöntemini kullanmak $wp_query
ve sonra da yöntemlerini kullanmak $wp_query->post
.
Bu konuda herhangi bir düşünce takdir edilecektir.