Genişletilmiş bir WordPress eklentisi oluşturmak için Apple_filters () ve Do_Raction () Nasıl Kullanılır
Bir eklenti nasıl teknoloji ekosistemleri geliştirmenin temeli haline gelir? Bazıları WordPress etkinliği tarafından yönlendirilen kanca sistemi tarafından mümkün olan genişletilebilirliği kullanarak. Bazı WordPress eklentilerinin şansı var gibi görünüyor mu? WooCommerce, Easy Dijital İndirmeler, Yerçekimi Formu: Bu eklentilerin her biri, eklentinin benzersiz gücünü desteklerken, işlevlerini hayal edilebilecek her yöne geliştiren düzinelerce üçüncü taraf uzantısı ile tüm endüstridir. Bu arada, bu haftanın gereksiz şekli kadar diğer eklentilerin çoğu gerçekten bağımsız.
Bir eklenti nasıl teknoloji ekosistemleri geliştirmenin temeli haline gelir? Birçok cevap var: ilk pazarlama, harika ürünler inşa eden, pazarlama bilgisi ve diğerleri. Ancak bugün teknik cevapların ana kısmını göreceğiz: WordPress etkinliği tarafından yönlendirilen bir kanca sistemi aracılığıyla genişletilebilirlik. Bugün, eklenti işlevinin genişletilebilirliğini sağlayan iki ana işlevi tartışmak için işlev gören bir eklenti örneği kullanacağız: Apple_filters () ve DO_ACTION (). Başlamadan önce bir şey daha. WordPress’in gelişimini öğrenmek istiyorsanız, bunun için en iyi yönergeleri yazdık:
WordPress’in gelişimini öğrenmenin en iyi yolu uyan ve bugün koş!
“Bence WordPress’in gelişimini öğrenmek isteyen herkes bu kursu gerektiriyor. Videoyu izlemek açılan bir grup ışık gibi. ” -Jason, bir WordPress geliştiricisi “Denediğim başka bir kurs neredeyse her zaman WordPress’in neden bir şey yaptığını veya her şeyin birlikte nasıl çalıştığını açık bir şekilde açıklamamak. Tüm bunları çalıştırıyor ve her şey net ve anlaşılması kolay bir dilde açıklanıyor. ” -Caroline, WordPress -Out ve şimdi çalışan işçiler
Tamam, hadi dalın!
Uzatma: Eklentiler için eklentiler, “Uzatma” dediğimizde ne hakkında konuştuğumuzu açıktır, örneği ele alalım: Wooocommerce için şerit. WooCommerce yoksa bu uzantı hiçbir şey yapmaz. Ancak, bunu yaparsanız, WooCommerce için Stripe’i ayrı bir eklenti olarak satın alır ve yüklersiniz ve WooCommerce işlevselliğini genişletir, böylece bir şerit ödeme ağ geçidi üzerinden ödeme almaya başlayabilirsiniz. Yani, diğer eklentileri belirli bir şekilde artıran bir eklentiniz var. Bu bir uzatma. WordPress teknoloji ekosisteminden bir bilgi kelimesidir.
Genişletme Nasıl Çalışır: Uygulama_filters () ve DO_ACTION () genişletilebilen WordPress eklentileri iki işlevi serbestçe kullanır: Apple_filters () ve do_action (), WordPress kancaları oluşturmanın iki yolu. Bir sonraki soru: WooCommerce bunu nasıl yapıyor? Ayrıca, “yalnızca kullandığı ağ geçidi ile işlev gören” bir E-Niaga eklentisi yazmayı hayal etmek kolaydır. O zaman gerçekten bir şerit istiyorsanız, wooCommerce’i sökmeli ve belki de sonuçta kendi başına bir yarışmacı olan Stripecommerce olarak adlandırmalı veya sadece geliştirme ve onarım için sizin için ödeme yapabilen bir müşterinin sitesinde kalmalısınız. Devam eden hatalardan. Bu düşünmek için bir karmaşa, ama neyse ki WooCommerce çok daha iyi bir şey yapıyor. Bu, iki işlevi serbestçe kullanır: Apple_filters () ve do_action (). Bu işlevlerin her ikisi de WordPress’te kancalar yapmanın iki yolu ve genel olarak WordPress Hooks sisteminin temel kısımlarıdır. Apple_filters () ve do_action () basit bir farkı vardır:
Apple_filters (), filtre işlevini bağlama şeklinizdir.
DO_ACTION (), eylem işlevini bağlama şeklinizdir.
Nasıl çalıştığını görmek için doğrudan bir örnek görelim. Çalışma örnekleri: Eklentiler ve uzantılar, örneğin, “Günün Alıntı” işlevini ve eklentiyi belirli bir şekilde değiştiren uzantıları kullanacağız. Kodu takip etmek ve görmek için her iki eklentiyi de zip dosyaları olarak indirin.
Orijinal eklenti: Günün Alıntı Bu eklenti, harici alıntı kütüphanesi tarafından maruz kalan yangından ilginçtir ve teklifin 24 saatte bir yenilenen geçici bir WordPress olarak üretilmesi. Bu makaleye herhangi bir zamanda geri dönün ve o gün “yaşam” konusu hakkında rastgele bir alıntı göreceksiniz – ki bu oldukça geniş olmalı. Varsayılan eklenti, kısa bir kod kullanarak kendini gösterir ve şu şekilde görünür: Uzatma: Günün Carl Sagan Alıntı Bildiğimiz gibi, çoğu alıntı ile ilgili sorun, alıntı ile ilgili olarak, alıntı, kariyeri takip eden bir gökbilimci olan Carl Sagan tarafından konuşulmamasıdır. 20. yüzyılın sonunda dünyanın kolektif zihnini üflemek. Uzantımız, bir dizi araç kullanarak sorunu çözer: Bugünün tarihini gösteren büyük bir başlık ve alıntı Carl Sagan tarafından yazılmıştır,
Carl Sagan’ın söyleyeceği bir şeye herhangi bir alıntı yapmak için belirli kelimelerin yerine bazıları,
Yazarın orijinal alıntısı geçti ve alıntı artık Carl Sagan ile doğru bir şekilde ilişkilendirildi ve
Her alıntının altında, Carl Sagan’ın ne olduğu hakkında bir multimedya hatırlatıcısı olarak, en temel gerçeklik anlayışınızı gerçekten yok eden Carl Sagan’ın taklit grafiği var.
Bu, eklenti ve iş başında olan uzantı: 9 Şubat 2022 için bugün Carl Sagan alıntısı:
İki adımda gerçekleşmesi için kod kodu:
Orijinal eklenti, kancayı hem eylemin kancalarını ve kanca filtresini, kendi kodunu önemli noktalara değiştirmek veya eklemek için dış kodu izin vererek tanımlar. Eklentiler bunu başarmak için Application_filters () ve DO_ACTION () kullanır.
Uzatma, orijinal eklentiyi ihtiyaç duyduğu şekilde değiştiren ilgili işlevleri – hem eylem hem de filtre tanımlar. Orijinal eklentimizdeki anahtar kodu, API’mizi alıntı veritabanına nasıl yaptığımızı tartışmayacaktır, ancak oldukça ilginç ve bu oldukça ilginç ve WP_REMOTE_GET () kullanan bir ders kitabıdır, bu nedenle bir kez daha, lütfen her iki eklentiyi içeren zip dosyasını indirin.
‘; $ qod_text = $ $ qod_data [‘text’]; $ qod_author = $ $ qod_data [‘yazar’]; // İçeriği filtreleyin! $ Qod_text = Appl_filters (‘wspout_qod_text’, $ qod_text); $ qod_author = Applate_filters (‘wspout_qod_author’, $ qod_author); echo $ qod_text; echo ‘
‘; echo $ qod_author; echo ‘ ‘; } // Geri kalan çıkıştan sonra Action Hook! Do_action (‘wphout_aft_get_qod_text’); return ob_get_clean (); } Burada vurgulanması gereken kısım (çıkış arabelleğinin kısa kodlar için nasıl yararlı olduğu dışında) aşağıdaki dört satırdır:
DO_RACTION (‘WSPSPOUT_BEFORE_GET_QOD_TEXT’); Bu, WPSHOUT_BEFFORED_GET_QOD_TEXT adını verdiğimiz eylemin kancalarına bağlanmış (add_action () kullanılarak) herhangi bir işlevi yerine getirecektir. Tüm bunlar, kalan eklenti kodu yazdırılmadan önce oldu. Bu eylem uzantı tarafından “bugün [tarih] için Carl Sagan alıntılarını” yazdırmak için kullanılır: “Teklifin üstünde. $ Qod_text = Appl_filters (‘wspout_qod_text’, $ qod_text); Bu, WPSHOUT_QOD_TEXT adlı kanca filtresine ilişkilendirilmiş (Add_filter () kullanarak) herhangi bir işlevi gerçekleştirecektir. Bu bir filtre işlevidir, yani verilen çıktıyı değiştirirler – bir teklif metni içeriği olan $ Qod_text – ve daha sonra daha fazla işleme için döndürürler. Bu filtre kancası, alıntılardan belirli kelimeleri Carl Saganspeak’e dönüştürmek için uzantı kullanılır.
$ qod_author = Applate_filters (‘wspout_qod_author’, $ qod_author); Bu, WPSHOUT_QOD_AUTHOR adlı kanca filtresine ilişkilendirilmiş (Add_filter () kullanarak) herhangi bir işlevi gerçekleştirecektir. Bu filtre kancası, orijinal alıntı yazarını geçmek ve daha sonra “Carl Sagan” yı yerleştirmek için uzantı tarafından kullanılır.
Do_action (‘wphout_aft_get_qod_text’); Bu, wpshout_after_get_qod_text adlı eylemin kancalarına ilişkili (add_action () kullanarak) herhangi bir işlevi yerine getirecektir. Tüm bunlar, kalan eklenti kodu yazdırıldıktan sonra oldu. Bu eylem kancası, “Mind Blown” grafiğini teklifin altında görüntülemek için uzantı tarafından kullanılır.
Kısacası: Eklenti yalnızca kendi bilgilerini verebilir, ancak koddaki ana yerlerde kancalar yapmak için Applic_filters () ve DO_ACTION () kullanarak çalışmaz. Eylem kancası, diğer programcıların istedikleri her şeyi eklemelerine veya değiştirmesine izin verir ve filtre kancası diğer programların ana içeriğin belirli bölümlerini değiştirmesine izin verir. Uzatma uzantısındaki anahtar kodu, yalnızca bu değişiklik için alan sağlayan eklentiyi kullanan orijinal eklentinin hareket ve filtre değiştirilmesinden oluşur. Uzatma için aşağıdaki kod: add_filter (‘wspout_qod_text’, ‘wspout_filter_qod_text’); // filtre: Alıntı metnindeki belirli kelimeleri carl saganspeak işlevi ile değiştirin wspout_filter_qod_text ($ text) {$ text = str_replace (‘i’, ‘me’, ‘the’, ‘is’, ”, ‘am’),. Array (‘Ben, bir şekilde kendini yansıtma için şaşırtıcı bir kapasite geliştiren Savannah’da yaşayan hominidlerin soyundan gelen’, ‘”Ben” dediğim soğutulmuş yıldız maddesi,’ görünen trilyonlarca atom, ‘görünüyor,’ görünüyor, Kuantum fizikselliğinin akıl almaz perspektifi olmadan, ‘,’, ‘Heisenberg Belirsizlik İlkesi nedeniyle’, ‘en iyi bilimsel araçlarımıza görünmek için görünmüyor’), $ metin); $ text dön; } // Filtre: eski yazar strikethrough ve add_filter (‘wspout_qod_author’, ‘wspspout_filter_qod_author’) sonra “carl sagan” ekleyin; İşlev wspout_filter_qod_author ($ text) {$ text = ”. $ metin. ‘ Carl Sagan’; $ text dön;
} // Action: Alıntıdan önce başlık ekle add_action (‘wspout_beefore_get_qod_text’, ‘wspout_set_up_quote’);İşlevi wspout_set_up_quote () {echo ‘
Günün Carl Sagan alıntısı’.Tarih (‘f j, y’).’:
‘;} // Action: “Mind Blow” add ekle add_action (‘wspout_aft_get_qod_text’, ‘wspout_add_carl_boom’);İşlev wspspout_add_carl_boom () {echo ‘
<div class = "hizalama" src = "'. Plugin_dir_url (__file__).} Gördüğünüz gibi, bu oldukça standart olan add_action () ve add_filter () kullanımıdır – ve her iki işlev de adlandırdığımız kancaya (örneğin, wpshout_qod_text), tıpkı diğer kancalar gibi.Sonuç, eklentimizin genişletilebilmesidir: İkinci geliştirici günlük alıntı eklentisini görebilir, "Carl Sagan-Ara'yı istiyorum" diyelim.