Ders: WordPress Hooks sistemine tam giriş
Bu ders en önemli ve yaygın olarak kullanılan WordPress sistemlerinden birini içerir: eylemler ve filtreler dahil kancalar. Kancaları olaylar tarafından yönlendirilen bir sistem olarak tanıtıyoruz, bu sistemi anlamanız gereken ana kavramları ve terminolojiyi sunuyoruz ve kendi kodunuzda kancayı nasıl kullanacağınız, kendi işlevlerinizi ilişkilendirmek, önceki işlevleri silmek ve Başkaları için kendi eylemlerinizi ve kanca filtrelerinizi yapmak. Biz dalış yapmadan önce bir davet. Videolara ve WordPress kancaları hakkında ek kodlara örnek olmak istiyorsanız – ve genel olarak WordPress’in gelişimini daha iyi anlamak istiyorsanız – “WordPress’in gelişimini öğrenme”, yukarı ve çalışma kursuna bakın. Bu, WordPress’in geliştirilmesi için en iyi rehberdir.
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
1. WordPress olay sistemine dayalı programlamayı anlamak: Daha geniş bir programlama bağlamında kancaları anlamak Anahtar Noktalar: WordPress Hooks Sistemi, olaylar tarafından yönlendirilen bir programlama sisteminde olay tabanlı programlama örneğidir, bir sistem “olaylar” oluşturur, bu daha sonra gerektiği kadar başka bir sistem tarafından yanıtlanır. Olaylar tarafından yönlendirilen programlama sisteminde, bir sistem bir “olay” oluşturur ve daha sonra gerektiği kadar diğer sistemler tarafından yanıtlanır. Bu, WordPress Hook Sistemi üzerinde çalışmanın tam yoludur: Çekirdek WordPress (ve bazı temalar ve eklentiler), birçok “kanca” – hem kanca hem de kanca filtresi – içeren kendi özel kodunuzu doğru zamanda “bağlamak” için kullanabileceğiniz WordPress sitesinde. işleme.
Ana nokta: Olaylar tarafından yönlendirilen mimari tabanlı bir sistemin avantajının birkaç ana avantajı vardır. Olaylar tarafından yönlendirilen sistemde çok genişledi, başkalarının sistem tarafından başlangıçta kullanılan davranışı tamamlaması oldukça kolay. WordPress’te WooCommerce güçlü bir örnektir: WordPress blogunu ve web sitesi yazılımını, WordPress’in kendisini herhangi bir şekilde değiştirmeden WordPress işlemede önemli noktalara dahil ederek E-Niaga yazılımına değiştirir. WordPress yazılımının bireysel bölümünün ilişkisi çok “yüklü”: WordPress’i temaları ve eklentileri güncellemeden kendiniz güncelleyebilirsiniz, çünkü temalar ve eklentiler sadece WordPress işlemindeki olaylara, onunla entegre etmek (birleştirmek) yerine yanıt verebilirsiniz. Bu zayıf kahvede daha fazla yönden, yazılımın her bölümünün diğer sistemlerle uyumlu olmak yerine kendi hızında hareket edebileceği anlamına gelir. Daha yakından birleştirilmiş bir sistem, WordPress eklentisi mimarisi gibi bir şeyi destekleyemez. Olaylar tarafından yönlendirilen sistemde (WordPress kaynak kodu gibi) basit ana kodu görünür, çünkü uzatma için tüm dış olasılıkları yalnızca diğer kodlar tarafından yanıtlanabilecek olayları etkinleştirerek işler. “Burning Etkinlikleri” (WordPress, DO_ACTION () ve Appling_filters ()) genellikle kodu okuduğunuzda göz ardı edilebilir, kalan kodun kendisinin oldukça basit ve okunması kolay görünmesini sağlar.
Kilit nokta: Olaylar tarafından yönlendirilen sistem tabanlı sistem sistemlerinin eksikliğinin birkaç önemli zayıflığı vardır. Görülen sadelik, olaylara yanıt veren koda genişletme karmaşıklığı yoluyla “temel olarak” “olaylar tarafından yönlendirilen sistemin karmaşıklığını gizleyebilir. WordPress’te bu özellikle tema ve eklentidir. Bu kodu yazmak belirli durumlarda diğer sistemlerden daha zor olabilir: Yanıtladığınız olay ihtiyacınız olan bazı verileri sağlamazsa, bunu elde etmenin bir yolunu bulmalısınız. Bu, çoğaltılmış kodlara ve ikili çalışmaya neden olabilir.
Zaman tabanlı etkileşim ve olay sisteminden akış sorunlara neden olabilir. Örneğin, WordPress’te, WordPress’teki yanlış olayı “bağlamaya” ve yapamayacağınız bir şey yapmayı veya son olarak bir şeyler yapmayı denemek. Her iki durumda da, kodun kendisi oldukça makul görünse de, kodunuz çalışmaz.
Olaylar tarafından yönlendirilen bir sistemde hata ayıklamak zordur, herhangi bir şey belirli olaylara yanıt vererek sistemin durumunu değiştirebilir, böylece olaylar tarafından yönlendirilen sistemin hata ayıklanması çok zordur.
WordPress geliştiricileri bu sorunu öğrenecekler, örneğin, basit hataların nedenlerini bulmak için “tüm temaları ve eklentileri devre dışı bırakma” ihtiyacı – çünkü kodun bir kısmı, hatadaki sistem bağlanabilir ve durumu değiştirebilir Yer görünür. 2. WordPress Kancaları: Kancalar, Eylemler ve Filtreler Filtreleri ve Filtreleri WordPress: Ne yaptıkları ve nasıl çalıştığı Anahtar Noktalar: WordPress Hook System Terminolojisi, WordPress’e kendi kodunuzu eklemenize izin veren olaylar tarafından yönlendirilen bir sistemdir PHP işleme. Bu sistemdeki anahtar terimler, kancalar, eylem ve filtrelerin yanı sıra eylem kancaları, filtre kancaları, kanca işlevleri, eylem işlevleri ve filtre işlevleri gibi ilgili terimleri içerir. WordPress belgelerinin kendisi bu terimleri uygunsuz bir şekilde kullanır, bu nedenle doğru tanımı anlamak önemlidir: Hook, WordPress kodunda ona işlevler ekleyebilen bir yerdir. WordPress’te bir kanca yaptığınızda, kendinize ve başka bir geliştiriciye o konuma ek işlevler ekleme fırsatı verirsiniz.
İlgili işlevler, WordPress işlemeye eklenen harici kod parçalarıdır. Başka bir deyişle, bu kanca tarafından sağlanan belirli konumlarda WordPress ile “ilgili” bir işlevdir.
İki tür ilgili işlev vardır: eylem (“eylem işlevi” olarak da adlandırılır) ve filtre (“filtre işlevi” olarak da adlandırılır). Filtreler mevcut çıktıları değiştirirken, eylemler her türlü özel işlevi gerçekleştirebilir.
Kancalar iki tipte gelir – eylem kancaları ve kanca filtresi – aldıkları kanca işlevinin türüne göre.
Bu terminolojinin kendi başına görselleştirilmesi çok zor olduğundan, bu makale bu ilişkiyi açıklığa kavuşturmak için uzun bir benzetme sağlar. Anahtar: Örnek filtre aşağıdakiler filtre işlevinin bir örneğidir: add_filter (‘the_title’, ‘wspout_filter_example’); İşlev wspout_filter_example ($ title) {return ‘hooked:’. $ Title; } Bu işlev, yayın başlığı sayfaya verildiğinde etkinleştirilen The_Title filtre kancasına bağlanır. Bu, özel filtre işlevini “bağlar”: wpshout_filter_example adlı bir işlev. Tarayıcıda görülen bu kodun etkisi, Site genelinde tüm yayınların başlığından önce “Hooked:” ın eklenmesidir. Anahtar noktalar: add_action örnekleri (‘wp_footer’, ‘wpshout_action_exmample’); İşlev wspout_ace_example () {echho “wphout buradaydı.”; } Bu işlev, WordPress temasında doğru bir şekilde oluşturulan Etiket kapanmadan hemen önce etkinleştirilen WP_Footer Eylem Kancasına bağlanır. Bu, özel eylemin işlevini “bağlar”: wpshout_action_example adlı bir işlev.
Tarayıcıda görülen bu kodun etkisi “WPSHOUT burada.”Site altbilgisinin altına eklendi.3. Applate_filters () ve do_action () ile genişletilebilir bir kod oluşturma https://wpshout.com/use-aply_filters-do_ace-create-extenable-wordpress-wordpress-lugins/ Anahtar Noktalar: WordPress kanca sisteminin genişletilebilirliği, kodun genişletilebilirliği kod Diğer kodları genişletmek için.WordPress eklentisi bağlamında, bu eklentileri “WooCommerce için rezervasyonlar” gibi belirli şekillerde genişleten “Eklentiler için Eklentiler” oluşturma olasılığını yaratır.Genişletilmiş bir tema veya eklenti oluşturmak için, eklenti için bir kanca oluşturursunuz: harici kodun eklentinin durumunu ve davranışını etkileyebileceği belirli bir nokta.
Anahtar Noktalar: Kancalar Nasıl Yapılır – Applate_filters () ve DO_ACE () Kanca WordPress iki lezzetle gelir: belirli verileri modifikasyon için harici kodlara ve her türlü değişiklik yapmasına izin veren eylem kancalarına yönlendiren filtre kancaları. Bir kanca filtresi yapmak için işlev, Apple_filters () olarak adlandırılır. Eylem kancalarını yapma işlevine do_raction () denir. Apple_filters () ile bir kanca filtresi örneği çok basit olan Applis_filters () kullanımı aşağıdaki gibi görünüyor: $ text_to_output = Appling_filters (‘wspout_sample_extensible_text’, $ text_to_output); Bu, harici kodun kanca filtresine bağlanmasını sağlar WSPOUT_Sample_extensenible_text. Harici kod bunu add_filter () arayarak yapacak ve $ text_to_utput tarafından verilen metni değiştirmek için özel bir filtre işlevi kullanacaktır. Ardından, $ text_to_utput’tan değiştirilmiş bir değerle her zamanki gibi çalışacak olan orijinal koda değiştirilen değeri devam ettirir. DO_ACE () Basit Kullanım DO_ACE () ile eylem kancaları örnekleri aşağıdaki gibi görülebilir: DO_ACE (‘wphout_aft_print_output_text’); Bu, harici kodun wpshout_after_print_output_text kancalarına bağlanmasını sağlar. Harici kod bunu add_action () arayarak yapacak ve “Bağlanacak”
İstenen işlevlere sahip olabilen özel işlevlerde. Özel işlev (ve wspout_aft_print_output_text’e bağlı diğer tüm eylem işlevleri) yürütüldükten sonra, orijinal kod her zamanki gibi çalışacaktır. Makalenin tamamı, eylem ve filtrelerden pratik örnekler (indirilen kodlarla) ve her ikisine de yanıt veren uzantılar içerir. 4. Bağlı işlevi kaldırılmış işlevi remove_action () ve rötuş_filter () ile silin https://wpshout.com/off-hook-practical-ceses-remove_ace-remove_filter/ anahtar noktaları: remove_action () ve remove_filter () objektif olan kanca işlevlerini kaldırma : Site kodunuzda bir yerde add_ace () ve add_filter () olan çağrıları iptal etmek için. Bu, tema veya eklentideki işlevselliği silmek istediğinizde gereklidir. Tema dosyasını veya eklentisini doğrudan değiştirmek, temayı veya eklentiyi güncellediğinizde değişikliği kaybetmenize neden olur, bu nedenle kendinize yazdığınız harici eklentinin Remove_ace () ve Remove_filter () çağrısı daha güçlü bir yaklaşımdır. Anahtar noktalar: remove_action () örnekleri aşağıdaki gibi görülen pratik kullanım örnekleri remover_action () aşağıdaki gibi: ‘woocommerce_before_shop_lop_item_title’, ‘woocommerce_template_loop_product_thumbnail’); Kontrol ettiğiniz eklentide veya function.php function.php, bu kod, WooCommerce ürünlerinin üstün görüntülerinin mağaza sayfanızdan kaybolmasına neden olur, çünkü Woocommerce bu görüntüyü bir PHP şablonu yerine bir kanca kullanarak görüntüleyen kodu çizer . Anahtar Noktalar: Remove_filter () Remove_filter () ‘nin pratik kullanımı örneği aşağıdaki gibi görülebilir: Remove_filter (‘ LostsPassword_url ‘,’, ‘