Kancadan Kapalı: Pratik Kullanın Remove_action () ve Remit_filter ()
Bugünün makalesi, doğrudan add_action () ve add_filter (): remove_action () ve remove_filter () ‘dan tam tersi bir görünümle WordPress Hooks sistemi hakkındaki tartışmamıza devam ediyor. Bu işlevleri nasıl kullanacağınızı söylemeden önce Remove_action () ve Remove_filter () Hakkında, neden ve ne zaman konuşalım. Neye iyi gelirler? Remove_action () ve remove_filter () bir hedefi vardır: Add_action () ve add_filter () addına var olan çağrıları iptal etmek. Remove_action () ve remove_filter () bir hedefe sahip: Site kodunuzda bir yerde add_action () ve add_filter () addına var olan çağrıları iptal etmek.
Başka bir deyişle, çalıştırdığınız kodu yazan biri, belirli filtrelerin eyleminin veya işlevinin işlevinin gerçekleştirilmesi gerektiğini ve “Hayır.” Neden sadece silinmek yerine Remove_ace () ve Remove_filter () Sitenizde istediğiniz işlevselliği dikte etmenizi sağlarken, yine de üçüncü tarafların temasını ve eklentisini güncelleyebilir. Öyleyse neden add_action () veya add_filter () orijinalini silmek yerine neden rove_action () ve remove_filter () kullanıyorsunuz? Eğer tüm kendi kodunuzsa, artık kullanmak istemediğiniz ilgili işlevleri silmeniz gerekebilir. Ancak WordPress’te, genellikle diğer kişilerin kodlarıyla – hem temalar hem de eklentiler – çalışırsınız ve koda dokunmamalısınız veya güncelleme sırasında değişiklikleri kaybedersiniz. Dolayısıyla, temaları korurken ve eklentileri çalıştırırken, remove_action () ve remove_filter (), yalnızca sitenizde istediğiniz işlevi uygulamak için kullanışlıdır.
Rote_action () ve remove_filter () günlük işimde çok yaygın değil. Bununla birlikte, günlük işimde remove_action () ve remove_filter () ‘nin çok yaygın olmadığını buldum. Genesis Framework veya WooCommerce gibi süper olay güdümlü sistemlerde daha yaygındırlar-ve aslında her ikisi de gerçek yaşam örnekleri WooCommerce’den gelir. Haydi bakalım! Remove_action () ‘nın pratik örnekleri Remove_action () için bulduğum en hızlı kullanım durumu WooCommerce’deki ürün görüntülerini silmektir. WooOcommerce, olaylar tarafından yüksek oranda yönlendirilen bir sistemdir ve ürün görüntülerini kaldırmak bir şablon düzenleme işlemi değil, yaprak serbest bırakma işlevidir. Kooda bakalım ve sonuç: ‘wooocommerce_beefore_shop_loop_item_title’, ‘wooocommerce_template Yukarıdaki kod, mağazanın ana sayfasının görüntülenmesini şöyle değiştirir:
Bunda:
Serbest bırakmak istediğiniz işlevin adı
Ayrıca, aradığınız işlevin “önceliği” için bir tamsayı olan üçüncü isteğe bağlı değer de vardır. Bu üçüncü değeri belirlemezseniz, varsayılan değer 10’dur, bu da önceliği belirlemeden add_action () çağırırsanız varsayılan bir önceliktir. (Bu tartışma sizi karıştırırsa, Add_ace () ‘deki kodeks girişindeki önceliğe biraz bakın.
Kısacası, orijinal add_ace () üçüncü argümanı içeriyorsa, bunu da yapmanız gerekir.Değilse, diyelim ki, add_ace () çağrısı işlevi 999’a bağlarsa, işlevin kaldırılmasından sonra bağlanacak şekilde ayarlandığı anlamına gelir – yani Remove_ace () hiçbir şey yapmaz.Remove_action () ‘nın üçüncü argümanı hakkında biraz garip, bu üçüncü değeri belirlerseniz, orijinal çağrının kesin önceliğini belirlemeniz gerektiğidir.Bu nedenle, sadece 10. önceliği ayarlayamaz ve “10 veya daha uzun” veya “999 veya daha uzun” add_action () çağrısını silmezsiniz: 10 yalnızca add_action () çağrısını öncelik 10 ile siler ve 999 yalnızca silecektir Öncelikle 999 ile arayın.
Remove_filter () pratik bir örneği WooCommerce ile kalalım. WooCommerce genellikle insanların WordPress’te olduklarını bilmelerini istemez, bu nedenle WooCommerce “şifrenizi kaybetmiş mi?” Sitenin önündeki WP-login.php’den /My-Account /Lost-Password’e istek. Woocommerce kodundan wc_lostpassword_url () ‘ye bakalım:/ * konum: woocommerce/come/wc-account-funtions.php */function wc_lostpassword_url ($ default_url =’) {$ wc_password if (false! == $ wc_password_reset_url) {return wc_get_endpoint_url (‘Lost-password’, ”, $ wc_password_reset_url); } else {return $ raunfor_url; }} add_filter (‘Lostpassword_url’, ‘wc_lostpassword_url’, 10, 1); Bu işlev Lostpassword_url WordPress filtre kancasına bağlanır. Orijinal Yönetici Parola Alma URL’sini filtreler ve kendi seçtiği URL ile değiştirir. Sonuç şuna benziyor: filtrenin çıkarılması, filtrenin çalışmasını istemediğimizi söylüyor. Bunun yerine, kullanıcılarımızın orijinal WordPress şifresi alan sayfayı açmasını istiyoruz. Yalnızca aşağıdakileri işlevimizde yazmamız gerekir. Şimdi, sitede bir şifre kaybettiğinizi gösterdiğinizde, buraya yönlendirilirsiniz:
Tabii ki, WooCommerce filtresini sildikten sonra, kullanıcıları her yere, hatta http://google.com’a getiren kendi filtrenizi ekleyebilirsiniz. Ancak WooCommerce transfer filtresinin kaldırılması ilk adımdır.
Üçüncü argümanı, işlevle ilişkili önceliği de belirleyebilirsiniz.WC_LOSTPassword_url () varsayılan önceliğe bağlı olduğu için bu durumda bunu geçmeliyiz.Bu kısa makale, Remove_ace ve Remove_filter kullanımını açıkladı ve bazı pratik gösteriler sunuyor.Daha ayrıntılı bir ekran için kursumuzu görebilirsiniz: WordPress Hooks sistemine tam giriş.Kendi sitenizde gereken şeyleri bırakmanızdan emin olabilirsiniz.Okuduğunuz için teşekkürler!