WordPress ile yazılım geliştirme ile ilgili birçok konuyu ele aldık ve bu oturumlar sırasında kesinlikle filtreler ve eylemler hakkında bir şeyler duydunuz.

Bunlar, WordPress mimarisinin önemli bir parçasıdır. Ve ihtiyaçlarınızı karşılamak için yenilerini yaratma fırsatınız var.

Bir kelime, bir mimarlık " olay Bir olayın oluşumunu dinlemenize ve söz konusu olaya göre veya başka bir yönden buna göre hareket etmenize izin veren bir tekniktir. Tepkiniz, yazdığınız şey, WordPress'in işlevselliğini genişletmek için istediğiniz işlevselliği nasıl yaratabileceğinizdir.

İşte çok basit bir örnek, bir WordPress gönderisi yayınlamak örnek bir olaydır (publish_post) bu bir durumu değiştirir.

Bu, WordPress'in genişletilebilirliğinin temelidir ve bu, onu en zengin CMS ekosistemlerinden biri haline getirir ve eşit derecede zengin özelliklere sahip binlerce tema ve eklenti ile büyür.

Köşeli parantez kullanımının bu kadar önemli olmasının başka bir temel nedeni daha var. Köşeli parantez kullanarak, WordPress kaynak kodunu değiştirmeden WordPress'i genişletebilir ve geliştirebilirsiniz.

Aslında, bu ifadeyi tekrar değiştireyim.

Sizi WordPress'te bir iş için işe alan biri (veya siz işe alıyorsanız), WordPress kaynak kodunu değiştirmenizi önerirse, her şeyi yerinde durdurun.

WordPress sitenizin ölçeklenebilirliğini kırmak isteyen herkesin neden bahsettiği hakkında hiçbir fikri yok. Bu insanlar güvenliği önemserse, bunu bile düşünmezlerdi.

Daha önce konuştuk. WordPress'in güncellenmesi (temaları ve eklentileri için de dahil olmak üzere) mevcut en son sürüme WordPress güvenliğinin temellerinden biridir. Sitenizin kaynak kodunu değiştiren geliştiriciler WordPress güncelleme döngüsünü kesinlikle bozdurarak sitenizden ayrılacaktır.yapmazlarsa değişikliklerini bir sonraki güncellemede üzerine yazılacaktır).

Öte yandan, kancaları ve WordPress'in size sunduğu diğer tüm genişletilebilirlik seçeneklerini kullanırsanız, WordPress blog emin olunacaktır.

pay ve filtre-wordpress

Kancalar, Eylemler veya Filtreler? Bunun anlamı ne ?

Kancalar, temelde herhangi bir WordPress işlevini, temasını veya eklentisini çalıştırırken meydana gelen olaylardır.

Ama neden onlara gerçekten kanca deniyor?

Belirli özellikleri genişletmek veya uygulamak isteyen geliştiriciler "asmakOlaylara tetiklendikleri anda.

WordPress uygulama aşamalarından geçerken, bir eklenti olup olmadığını kontrol eder (veya tema) o anda yürütmek için bir işlev kaydetti, bir işlev bulunursa, o zaman yürütülürler.

belgelerin bir kısmı kodeks WordPress, WordPress API, Kancaları, Eylemleri ve Filtreleri doğru bir şekilde açıklar, Yine de bazı yararlı ayrıntılar sunacağım:

kanca iki ana tipi vardır:

  • Paylar (hatta "eylem Kancaları")
  • filtreler (hatta "Filtre kancaları")

Gerçekte, bunlar başarma yeteneklerinde oldukça benzerdir, ancak bazı ince farklılıklar vardır.

Eylemler ve Filtreler arasındaki fark

Farklılıklar hakkında konuşmadan önce benzerliklerle başlayalım:

  • Alınan eylemler ve filtreler veri bir dizi parametre aracılığıyla.
  • Aynı zamanda eylemler ve filtreler de aynı şeyi yapabiliyor (WordPress'in kaynak koduna bakarsanız, eylemler için uygulanan fonksiyonların sadece zarflar olduğunu göreceksiniz). süzgeç işlevleri).

Bununla birlikte, önemli bir fark WordPress kanca bu iki tür arasında.

Bir değer döndürmek için filtrelere ihtiyaç vardır, eylemler bunu yapmaz.

Özünde, bir filtre ile, işlevi " bağlı Parametre olarak belirli bir değeri alır, işini yapar ve daha sonra bu değerin değiştirilmiş bir versiyonunu (ya da değil) döndürür.

Bir eylemin bir değer döndürmesi gerekmez.

Daha pratik olarak, bir filtre ile genellikle içerik üzerinde çalışacak, modifikasyonlar", Ardından bu içeriği iade edin. Örneğin, filtrelerin altında göreceğimiz gibi " title_save_pre Bir makalenin başlığına filtre uygulayan, content_save_pre Hangi bir makalenin içeriğine bir filtredir.

Öte yandan, "Eylem" bir şey yapar (kim halledebilir veri veya sadece bunları kullanın veri) bir olay meydana geldiğinde. Eylem publish_post Msgstr "Bir makale yayınlandığında tetiklenir.

Ne zaman ve nasıl bir eylem kullanmak

Sen ne zaman bir eylem kullanın:

  • HTML kodunu veya diğer içerikleri tampon belleğe enjekte etmek istiyorsunuz.
  • Bir veya daha fazla küresel değişkenleri değiştirme
  • İşlevinize iletilen ayarları değiştirin

İşte bir işlem eklemek için:

ADD_ACTION ($ kanca, $ function_to_add $, öncelik, $ accepted_args);

"$ hook", bağlamak istediğiniz eylem olduğunda, "$ function_to_add" bu kanca tetiklendiğinde yürütülecek işlevdir.

Ne zaman ve nasıl bir filtre kullanmak

Yukarıdakilerin tümünü yapmanız gerektiğinde bir filtre kullanabilirsiniz ancak WordPress tarafından kullanılacak bir ayarı değiştirmek de isteyebilirsiniz.

Aslında, sadece bir ihtiyaç değil, bir ihtiyaçtır. Bir filtre kullanıyorsanız parametre için bir değer döndürmelisiniz.

Bir filtre eklemenin yolu, köşeli parantezlerinkine oldukça benzer:

add_filter ($ kanca, $ function_to_add $, öncelik, $ accepted_args);

Burada yine "$ hook" kullanılacak filtre ve "$ function_to_add" yazmanız gereken işlevdir. Okuyun Belgeler WordPress daha fazlası için kancalar.

Bir filtreyi veya işlemi kaldırma

Eylemler ve Filtreler eklediğiniz gibi bunları da silebilirsiniz. Bu, Eylemler ve Filtre eklemenin tam tersidir, ancak sözdizimi çok benzer:

remove_action ($ kanca, $ function_to_remove $, öncelikli); remove_filter ($ kanca, $ function_to_remove $, öncelikli);

"$ Öncelik" isteğe bağlı bir bağımsız değişkendir.

Hem "add_filter" hem de "remove_filter" de, "$ öncelik" kancaların ateşlenme sırasını belirler. Birkaç "zincirlenmiş" kanca varsa, bunlar birbiri ardına çalıştırılacaktır.

Basit Örnek: Google Analytics İzleme Kodu WordPress'e Nasıl Eklenir

Nasıl oluşturulacağını size daha önce gösterdiğimizi unutmayın. WordPress Plugin. Şimdi tek yapmanız gereken aşağıdaki kodu dosyanıza eklemek. WordPress Plugin.

// Google Universal Analytics işlevi google_analytics () {?>
  (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
  (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
  m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
  })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
 
  ga('create', 'GA-XXXXXX-XX', 'auto');
  ga('send', 'pageview');

Bu eğitim için bu kadar. Umarım artık WordPress'teki filtreleri ve eylemleri nasıl ayırt edeceğinizi biliyorsunuzdur. Herhangi bir sorunuz varsa, sormaktan çekinmeyin.