WordPress kancaları için hızlı kılavuz (ve derinlemesine)

WordPress Hook, WordPress’in gelişimine girmek isteyip istemediğinizi öğrenmek için bir şeydir. Kancalar iki şey yapmanıza izin verir: WordPress’teki varsayılan işlevselliği değiştirin ve WordPress Core dosyasını değiştirmeden kendi işlevinizi ekleyin. Çekirdek dosyaları asla değiştirmediğinizden emin olun, ancak onsuz imkansız görünen şeyleri değiştirin ve ekleyin. Bu yazıda, iki tür kanca ile nasıl kolayca yapabileceğinizi göstereceğim: eylemler ve filtreler. Bunun için HTML ve PHP hakkında temel bir anlayışa ihtiyacınız olacak, ancak çok fazla değil. Hadi kazalım!
Kancalara duyulan ihtiyaç WordPress’e yerleştirilmiştir ve çekirdek sisteme işlevselliği değiştirmek veya eklemek için kullanılır. Bir an için WordPress’in herhangi bir kanca sağlamadığını varsayalım. Ve birçok zamanlanmış yayınla çalıştığınızı ve bir yayın yayınlandığında kendinize bir e -posta göndermek istediğinizi söyleyin. Nasıl yapacaksın? Kanca olmadan, çekirdek dosyayı değiştirmeniz gerekir. Eylemi alan işlevden hemen sonra bir gönderi yayınlamaktan sorumlu kodu arayacaksınız, kendi kodunuzu ekleyeceksiniz.
Bu birkaç nedenden dolayı zararlıdır. İki büyük, kontrol edilemeyen güncellemeler ve kodlardır. WordPress Core dosyasını değiştirirseniz, kodunuz düzgün çalışır, ancak WordPress’i bir sonraki sürüme güncellediğinizde silinir. Tüm değişikliklerinizi hatırlamanız veya takip etmeniz ve ardından geri koymanız gerekir. Çok rahat değil. Veya WordPress’i güncelleyemezsiniz, ancak uzun vadede çok büyük bir güvenlik riski olacaktır. Değişiklikleri izlemeyi ve WordPress’i güncellemeyi başarsanız bile, kontrol edilemeyen bir kodla standart olmayan bir ortamla kalırsınız. Diğer WordPress geliştiricileri kodunuzu ele almakta zorluk çekecek ve topluluk bir bütün olarak mutlu olmayacak. Bir kancanın kancasını daha önce tam olarak konuştuğumuz gibi ekleyin (bir gönderinin yayınlandığı bir yer bulun, kodunuzu ekleyin),. Ancak korkunç macun parçasını yer tutucu ile değiştirin. Varsayılan olarak, gönderme işlevinin yayınlanmasından sonra, işlevselliği oraya bağlamanızı sağlayan bir kap vardır. WP-Accessiones/Post.php’de bulabileceğiniz WP_Publish_Post (), aslında wp_publish_post () ‘nın kısa bir sürümü.
F895F91763E6AD55CA1E’nin çekirdeğini içerir
Do_action () temel olarak şöyle diyor: Kendi işlevlerinizi bana bağlayabilirsiniz, her şey yürütülecek. Böylece, WordPress her yayınladığında, wp_publish_post () WordPress işlevini kullanarak yayınlar, bunu gerçekleştirmek için gereken tüm adımlardan geçecektir. Ardından DO_ACE () işlevine geçin. İlk parametre wp_insert_post. WP_INSERT_POST’un eylemi ile ilgili herhangi bir işlev yürütülecektir.
Bir örneğe bakalım. Bağlı bir işlev oluşturmak için, basit bir eklenti oluşturmanız, function.php dosyasını kullanmanız veya bir alt tema oluşturmanız ve işlevler.php dosyasını orada kullanmanız gerekir. Şimdi hızlı bir eklenti yapalım. Eklentiler dizininde yeni bir klasör oluşturun ve “Hook-example” olarak adlandırın. Dizindeki “Hook-Exple.php” dosyasını oluşturun ve aşağıdaki kodu yapıştırın: Çekirdek F895F91763E6AD55CA1E içerir
Eklentiniz artık hazır. WordPress yöneticisindeki eklenti bölümünü açın ve etkinleştirin. Şimdi bağlı bir işlev yapalım. Hook-Emample.php dosyasında aşağıdakileri yapıştırın:
F895F91763E6AD55CA1E’nin çekirdeğini içerir
WordPress’e işlevi wp_insert_post ile bağlamak istediğimizi söylemek için add_action () işlevini kullanıyoruz. İkinci ve üçüncü parametreler öncelikler ve argümanlardır. Yakında tartışacağız. Bağımlılık işlevimizde sadece ne yapmak istediğimizi belirleriz. Bu durumda kendimize bir e -posta gönderin. WordPress bir yazı yayınladığında, wp_insert_post ile bağlantılı tüm işlevleri arayacak ve her şeyi çalıştıracaktır. Peki burada ne başardık? Temel dosyayı gerçekten değiştirmeden WordPress’in temel kısmına işlevsellik ekledik. Tek ihtiyacımız olan bir ek kod satırı. Bu çok önemli! Tek yapmanız gereken, ihtiyacınız olanı yapan bir işlev yazmak, daha sonra WordPress’in belirli bir kısmına bağlıyorsunuz.
Şimdiye kadar eylemler ve filtreler eylemin ne olduğunu gördük – belirli bir zamanda yürütülen kodun bir parçası. Filtreler, WordPress kullanmadan önce içeriği değiştirmek için kullanılabilir. Giriş sayfasındaki “Parolalarınız” metnini değiştirmek için filtreyi kullanabilirsiniz. Wp-login.php’e bakalım: Çekirdek F895F91763E6AD55CA1E’yi içeriyor
Gerçek dosya işleme girişinin alıntısı, oturum açma hatası mesajının Applate_filters () işlevi kullanılarak görüntülendiğini gösterir. Bu, Do-Action () işleviyle mantıkta çok benzer. İkinci parametrem bir tür veri içeriyor. İlgili işlevi ilk parametreme göre kullanırsanız, bu verileri değiştirebilirsiniz, aksi takdirde olduğu gibi kullanacağım. Varsayılan olarak, doğru kullanıcı adını ancak yanlış şifreyi girerseniz, aşağıdaki bildirimi göreceksiniz:
Bunun biraz güvensiz olduğunu düşünüyorsanız, kullanıcı adının doğru olduğu gerçeğini gösteriyorsa, işlevi değiştirmek için login_errors olarak bağlayabilirsiniz. İşte nasıl:
F895F91763E6AD55CA1E’nin çekirdeğini içerir
Bu değişikliği uygulayarak, giriş işleminize biraz daha fazla güvenlik eklediniz ve metni de kontrol edebilirsiniz.

Kancalar, eylemler, filtreler, kanca işlevleri ve etiketler, bazen birbirinin yerine kullanıldığı için yukarıdaki terimler hakkında bazı karışıklıklar vardır. Bazen yanlış konuşuyorum, bu yüzden daha fazla kafasını karıştırmam durumunda düzeltelim!
Kanca, eylem ve filtre için genel bir terimdir. Eylem, mevcut işlevlere ek olarak kendi işlevlerinizi eklemenizi sağlar. Filtre, mevcut işlevselliği değiştirmenizi sağlar. Bazen etiket, kancanızı nereye eklediğinizi gösteren bir dizeye başvurmak için kullanılır. Bağlantılı işlev, işlevselliği ekleyen veya değiştiren işlevdir. Kancaların Anatomisi Kancalar kullandığımızda, genellikle iki işleve güveniriz: add_action () ve add_filter (). Bu işlevlerin her ikisi de dört parametre alır: ilk parametre etikettir. Bu, WordPress’e işlevinizi nereye bağlamanız gerektiğini, ne zaman çalışacağınızı söyleyen kısımdır.
İkinci parametre ilişkili işlevlerin adı olmalıdır.

Üçüncü parametre bir öncelik kancasıdır. Bu, bazı işlevler aynı etikete bağlanırsa yürütme sırasını belirler.

Dördüncü parametre, bu işleve iletilen parametre sayısını tanımlar. Varsayılan olarak bu 1’dir, ancak bazı etiketler (daha önce wp_insert_post gibi) daha fazlasına sahip olabilir.
İki işlevin ilk parametresinin işaretlenmesi, ilişkili işlevler gerçekleştirildiğinde belirlenen basit bir dizedir. Kullanabileceğiniz birçok etiket var. Gönderi silindiğinde çalışan bir eylem etiketi vardır, kategori oluşturulur, kullanıcı girer ve daha fazlası. Etiket filtreleri özel taksonomi, ekran yayınları, tarih ve diğerleri için mesajlar üzerinde çalıştırılır. Kancalar referansları başlamak için iyi bir yerdir, ancak bazen Google araması daha etkili olabilir!
Bazı etiketlerin değişken kancalar olarak adlandırılabileceğini unutmayın. Örneğin “{Old_Status} _TO_ {new_status}” adlı bir kanca var. Bu kanca, kombinasyon için belirlenen bir dizi kanca olduğu anlamına gelir. Publish_to_trash, yayınlanan gönderi atıldığında çalışır, FUTHE_TO_Draft Taslak Durumuna planlanan bir gönderi düzenlendiğinde çalışır. İşlev bir kez daha bağlıdır, doğru işlev adı olması gereken basit bir dize. Bu işlevin adı olacağından, yalnızca harfler, sayılar ve alt hatları içermelidir. Bu işlevi benzersiz hale getirmeye dikkat edin. Bir “send_email” işlevini adlandırırsanız, işlev aynı adı taşıyan başkalarının işlevleriyle çatışabilir. İşlevin adını başlatmak için genel bir uygulamadır, örneğin: my_send_email veya wpmudev_send_email. Ayrıca işlev adlarınızın okunabileceğini öneririm. “Yazarın e -postasını gönder” işlevinizi adlandırabilirsiniz, ancak bu çok kötü bir uygulama çünkü bunun ne anlama geldiğini bilmiyor ve birkaç ay içinde unutabilirsiniz. İşlevin üçüncü işlevinin önceliği, bir kancanın önceliğini tanımlar. Öncelik ne kadar düşük olursa, işlev o kadar hızlı yürütülür. Bazı durumlarda sipariş önemli değildir, ancak bazı durumlarda önemlidir. Kendinize ve yazara bir e -posta yayını gönderisi göndermek istiyorsanız, sipariş çok önemli değildir. Her ikisi için varsayılan 10’u kullanabilirsiniz:
F895F91763E6AD55CA1E’nin çekirdeğini içerir
Ancak, her güncellendiğinde bazı istatistikleri güncellemek istiyorsanız ve yazara siparişin aniden önemli hale geldiğini söyleyin:
F895F91763E6AD55CA1E’nin çekirdeğini içerir
Gördüğünüz gibi, add_ace () için yer dizisi önemli değildir. İkinci çağrının daha düşük bir önceliği vardır, bu nedenle önce yürütülecektir. Filtreler için daha dikkatli olmalısınız. Filtre verileri değiştirdiğinden, filtre birbirine gelebilir. Aynı etikete iki filtre bağlanmışsa, önce daha düşük öncelikli filtreler yürütülecektir. Ardından, verileri tamamen değiştirebilen daha yüksek bir öncelikle yürütülür. Genellikle bu sefer istenen davranıştır, sadece dikkate alınması gereken bir şeydir. Parametreler Dördüncü parametre, bağlı işleve iletilen parametre sayısını ayarlar. Bu acele etmeniz gereken bir şeydir, çünkü kaynak kodda ne olduğuna bağlıdır. Oturum açma hatasını nasıl değiştirdiğimizi görmek için geri dönerseniz, aşağıdaki işlevi göreceksiniz: Appl_filters (‘login_errors’, $ hataları). İlk parametre etikettir, geri kalanı bağımsız değişkendir. Burada sadece bir tane var, bu nedenle bir argüman bağlı işlevimize iletilir. WP_INSERT_POST () durumunda, temel dosyada aşağıdakileri görebilirsiniz: do_ace (‘wp_insert_post’, $ post-> id, $ post, true); . İlk parametre etikettir, geri kalanı bir argümandır, bu yüzden buradaki değer 3’tür. Kanca sistemi hakkında kendi kanca şeyimiz, kendiniz yapabilmemizdir. İhtiyacımız olan tek şey zaten bildiğimiz iki işlevdir: DO_ACTION () ve Appling_filters () Ürünleri görüntüleyen eklentiler için kendi filtrelerimizi yapalım. Altbilgide şöyle yazabiliriz: “Geliştirici tarafından değiştirilmesine izin vereceğimiz” Ürün ekranımızın eklentisini kullandığınız için teşekkür ederiz “. Yapabileceğiniz yol budur:
F895F91763E6AD5CA1TREADING’nin çekirdeğini içeren aynı şekilde eklenebilir. Kullanıcıların ürün ekranı açıklaması altında bazı içerik eklemelerine izin vermek isteyebilirsiniz:
F895F91763E6AD55CA1E’nin çekirdeğini içerir
Başkalarının işlevimi değiştirmesine izin vermek için do_action () işlevini kullandım. Ayrıca, insanların bazı özel yayınlar eklemek isteyip istemediğinde, ilk parametre olarak gönderme nesnesi ekledim. Sonuç Bu makalede kancaların temellerini görüyoruz. Eylemler ve filtreler arasındaki farkı ve WordPress’in etkili çalışma şeklini değiştirmek için nasıl kullanılacağını inceliyoruz. Ayrıca eklentilerimize ve temalarımıza kendi kancalarımızı nasıl ekleyebileceğimizi de gördük. Bu, iş dostu geliştiricilerimizi yapmak için çok yararlıdır. Hooks, yangın eklentisinin bir parçasıdır, onlar hakkında daha fazla bilgi edinmek istiyorsanız, Codex WordPress’teki ilgili sayfaları okumanızı öneririm. Kancayı ne kadar sık ​​kullanırsanız, o kadar çok hoşuna gidecek ve sunduğu güce ve esnekliğe saygı duyacaksınız.

admin

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir