Bu uygulamanın büyük yararlarını şu nedenlerle görmüyorum :
Kayıt olurken geri arama işlevleriniz çağrılmaz
add_actionVe add_filterişlevleri yalnızca genel değişkenin bir giriş eklemek $wp_filtertüm filtreleri ve eylemleri tutar. Kaynağa bakın . İşlevi çağırmaz. Kodunuz çalışacaktır ancak ne zaman do_actionve apply_filtershangi olur, (uygun kanca adıyla) denir çok geç o kanca olmalıdır yerde.
Bunu yaptığınızda, global değişkenin $wp_filterdaha fazla bellek alması gerekir => daha fazla bellek gerekir. Ancak yeni bir işlev oluşturmanın aynı sorunu yaşadığını düşünüyorum.
Kodu düzenleme
Her şeyi bir işleve koymak , temanızdaki / eklentinizdeki her dosyadaki tüm kancaları hatırlamaya zorlar. Sen olmaz böyle bir şey yapmak:
- in
header.php: başlıkta gerçekleşen şeyler için kancalar ve geri arama işlevleri ekleme (menü, kayıt komut dosyası gibi)
- in
content.php: içeriği filtrelemek için kancalar ve geri arama işlevleri ekleme
admin-menu.php: yönetici menüsü eklemek için kancalar ve geri arama işlevleri ekleyin
(bu dosyaların temanıza / eklentinize eklendiğini varsayın)
Bunun yerine şunları yapmanız gerekir:
- sadece callback fonksiyonlarını koymak
header.php, content.php,admin-menu.php
- ve tüm kancaları ayrı bir fonksiyona başka bir dosyaya koy
=> Bu, header.phpdosyanın içeriğine baktığınızda ne olacağını bilmenizi zorlaştıracaktır . Bu geri aramaların ne zaman tetiklendiğini bilmek için arama yapmanız gerekir.
Ve temanızda / eklentinizde birden fazla sınıfınız olduğunda durumu düşünün. Tüm sınıfların tüm kancalarını bir yere koyar mısın? Yoksa her sınıfın tüm kancaları tutan bir sarma işlevi var mı? Çok gereksiz!
Bu sebepten ötürü, kişisel tarz olduğunu düşünüyorum :). Hybrid'in söylediklerini yaptığı gibi bazı çerçeveler görüyorum. Bazen bu çerçevelere girmemi zorlaştırıyor!
wp_loadedve MS bilgileri.