WordPress Kancaları: Temel Kılavuz

Yayınlanan: 2021-01-26

WordPress kancaları, WordPress eklentileri ve temaları yapan geliştiriciler için tasarlanmış yararlı bir araçtır. Aslında, o kadar kullanışlılar ki, WordPress'in yaratıcıları bunları WordPress çekirdeği boyunca kullanıyor. Ancak WordPress kancaları tam olarak nedir ve bunları nasıl kullanıyorsunuz?

Bu kılavuzda, WordPress kancalarının nasıl etkili bir şekilde kullanılacağına ve temel bilgilere nasıl dalılacağına bir göz atacağız. Hadi dalalım!

Bu kılavuzda

    WordPress'teki Kancalar nedir?

    Özetle, WordPress kancaları, diğer WordPress kod parçalarının parçacıklarını yakalayan ve yürüten WordPress kod parçacıklarıdır. Esasen geliştiricilerin temalarında ve eklentilerinde çeşitli dosyalar arasında kolayca gezinmelerine izin verirler.

    WordPress kancaları, WordPress çekirdeğinde paketlenmiş olarak gelir. Her tema ve eklenti de bunları kullanır.

    WordPress Kancaları Açıklandı

    WordPress'teki kancaların temel amacı, geliştiricilerin WordPress çekirdek dosyalarını değiştirmeden içerik yönetim sisteminin çalışma şeklini temelden değiştirmelerine izin vermektir. WordPress açık kaynaklı olduğu için, çekirdek dosyaları ile karışıklık olabilir, ama birkaç dakika içinde pişman olacağımı% 99 şans var.

    Yeni geliştiriciler için anlaşılması biraz zor olsa da, WordPress kancalarının nasıl çalıştığını öğrenmek kesinlikle çok önemlidir. Çoğu zaman, WordPress'in kullandığı terminoloji nedeniyle kafa karışıklığı ortaya çıkar. Perde arkası eylemi birçok programlama dilininkine oldukça benzer olsa da, laf kalabalığı farklıdır. Önce örnekleri takip ederek, onlar hakkında okuyarak ve sonra pratik yaparak bunların nasıl oluşturulacağını ve kullanılacağını öğrenmek genellikle en kolayıdır.

    WordPress kancaları yazmak için PHP'de kod yazabilmeniz gerekir. PHP, WordPress'in büyük çoğunluğunun temel dilidir. Kancaları, diğer PHP işlevlerinin bağlanabileceği açıklıklar olarak düşünebilirsiniz. WordPress kancalarını, kullanıcı verileri görmeden önce verilere veya ekrana bir şeyler yapan geri aramalar olarak da düşünebilirsiniz.

    WordPress kancaları

    İki Tür WordPress Kancası

    Öğrenmeniz gereken iki ana WordPress kancası türü vardır:

    • WordPress eylem kancaları
    • WordPress filtre kancaları

    Bu iki tür WordPress kancasına ve nasıl farklı olduklarına bir göz atalım. Kullanımlarını daha iyi göstermek için hem eylem kancalarının hem de filtre kancalarının birkaç örneğini inceleyeceğiz.

    WordPress Eylem Kancaları ve Filtre Kancaları Arasındaki Fark

    WordPress kodeksini incelemek için zaman harcadıysanız, muhtemelen bu terimlerin gelişigüzel atıldığını görmüşsünüzdür. Ne yazık ki, kodeksin zayıf yönlerinden biri, geliştiricilerin kendileri tarafından yazılmış olmasıdır. Bir yan etki olarak, onlar için açık olabilecek bazı önemli ayrımlar, WordPress çekirdek koduna aşina olmayanlar için açık değildir.

    İki tür WordPress kancası arasında ayrım yapmanın en kolay yolu, eylem kancalarının değer döndürmemesi, filtre kancalarının ise değer döndürmesidir.

    Yaygın programlama dillerine aşina olanlar için bu, eylem kancalarının "geçersiz" bir dönüş tipine sahip olduğunu söylemek gibidir, oysa filtre kancaları gerçek verileri döndürür.

    Filtre kancaları, ön işleme kancaları veya olaylar olarak düşünülebilir. Bir filtre kancası, bir veritabanı sorgusundan döndürülen sonuçları yalnızca "Smith" soyadına sahip girdileri içerecek şekilde filtreleyebilir. Bu filtre kancası, gerçek veritabanı sorgusu çağrılmadan önce çağrılmalı ve WordPress'e önceden alakasız sonuçları döndürmeden önce alması gerektiğini bildirmelidir.

    WordPress eylem kancaları, kod aracılığıyla bir şey almak olarak düşünülebilir. Eylem kancasının yaygın bir örneği, farklı görünmesini sağlamak için bir site sayfasına ek bir CSS dosyasının eklenmesidir. Unutmayın, kancalar, daha kullanıcıya teslim edilmeden önce verilerin görüntülenme şeklini değiştirir. Eylem kancası, kullanıcı deneyimini daha iyi hale getiren yeni bir CSS dosyası sunar. Bu işlem, WordPress'in çekirdeğini düzenlemeyi veya sitenin çekirdek web kökünü düzenlemeyi gerektirmez. Bu şekilde, WordPress kancaları, eklentilerle birlikte birden fazla WordPress sitesini yönetmeyi çok daha kolay hale getirebilir.

    Kancalar ve Filtreler Açıklaması

    Artık WordPress kancalarına ve filtrelerine daha soyut bir genel bakışa baktık, şimdi bunların nasıl çalıştığına dair daha teknik ayrıntılara girelim.

    Bir WordPress kancasını bir adla gerçekleşen bir olay olarak düşünebilirsiniz. WordPress çekirdeğinde bulunan bir örneğe save_post adı verilir . Kanca ile, esasen save_post çalıştırıldığında, bizim kanca veya filtre takmak ve onunla birlikte çalıştırmak istediğiniz söylüyorlar.

    WordPress'teki kancalara geri aramalar veya geri arama işlevleri denir. Bu, WordPress'ten " bağladığımız " olay başlatıldığında oluşturduğumuz işlevlerde bulunan kodu çalıştırmasını istediğimizi söylemenin süslü bir yoludur (yukarıdaki örneğimizde save_post gibi).

    WordPress kancaları eklemek yeterince kolay olsa da, daha sonra inceleyeceğimiz gibi, yanlış yazılmış bir geri aramanın geri arama zincirinizi tamamen mahvedebileceğini unutmayın. Bu olursa, geri aramalar zincirindeki kopuk bir halka, tüm sıkı çalışmanızı tamamen mahvedebilir! Değişiklik yapmadan önce daima bir yedekleme yapın. Herhangi bir değişiklik yapmadan önce güvenilir bir WordPress yedekleme eklentisinden yararlanın.

    Kancaların nasıl çalıştığının ardındaki daha fazla teknik ayrıntıyla ilgileniyor musunuz? Bir sonraki bölüme göz atın! İlk eylem kancanızı ve ilk filtre kancanızı oluşturmaya yönelik bir eğitimin yanı sıra daha ayrıntılı bir açıklamamız var!

    WordPress'teki Kancalar Nasıl Çalışır?

    Unutmayın, birkaç farklılık olsa da, WordPress'teki eylem kancaları ve filtre kancaları büyük ölçüde aynı görünebilir. Bu kancaların nasıl çalıştığını kısaca gözden geçirelim. Makalede daha sonra bir örnek ve öğretici üzerinden geçeceğiz.

    Her iki kanca türünün de kullanılmadan önce WordPress'e kaydedilmesi gerekir. Bu, CMS'ye kodumuzu "bağladığımız" bir olay çalışması olduğunda eklenecek işlevlerin listesini verir. Ayrıca, eylemlerin eylem olarak kaydedildiğinden ve filtrelerin filtre olarak kaydedildiğinden emin olun.

    Bir eylem eklerken, WordPress temel işlevi add_action()'dan yararlanın . Filtre eklerken, add_filter() adlı ilgili WordPress çekirdek işlevini kullanın. Geri aramalarınız (olay veya eyleminiz çalıştırıldığında zincirde çalışır) herhangi bir veri döndürmüyorsa, bunu bir eylem olarak kaydetmeniz gerekir. WordPress'in filtrelenebilir veri olarak adlandırdığı şeyi döndürürse, onu bir filtre olarak kaydedin.

    Bu fonksiyonlarda belirttiğiniz her şey siteniz bir kullanıcı tarafından açıldığında çalıştırılır. WordPress, tüm bu eylemleri ve filtreleri bizim için bir araya getiren dahili bir jeneratöre sahiptir. Eylemler ve filtreler için ilgili kaldırma işlevleri de vardır. Bunlar, geri arama zincirinizden bir işlevi ortadan kaldırmak için kullanılabilir. Genellikle WordPress PHP'deki koşullu ifadelerde bulunurlar.

    Sadece bizim eklenti fonksiyonları gibi onlar remove_filter remove_action () ve deniyor ().

    WordPress'te Nasıl Kanca Oluştururum?

    Sonunda WordPress'teki ilk kancamızı yapma zamanı geldi! Kanca oluşturmanın, sitemizin kullanıcılarına görüntülenecek ve işlenecek özel kod eklemeyi içerdiğini unutmayın.

    Her özel kod eklediğimizde, bir miktar güvenlik riski eklediğimizi unutmayın. Bu nedenle, güvenebileceğiniz bir WordPress güvenlik eklentisinin kurulu ve kullanıma hazır olduğundan emin olmak için şu an ideal bir zaman olacaktır. Bu, içinizin rahat etmesine yardımcı olabilir ve yeni güvenlik açıklarına yol açabilecek özel kod aracılığıyla sitenize yönelik olası tehditleri iyileştirebilir.

    Bonus içeriği edinin: WordPress Güvenliği Kılavuzu
    Buraya tıklayın

    WordPress'te çok basit bir eylem kancasını nasıl yapabileceğimize bir göz atalım. Ardından, CMS'deki bir filtre kancası örneğine bakacağız.

    WordPress'te Nasıl Eylem Kancası Oluştururum?

    Eylem örneğimiz için, hemen hemen tüm WordPress geliştiricilerinin bir noktada yapması gereken bir şey yapalım: WordPress giriş sayfasındaki içeriği ayarlayın. Sayfa çok genel.

    Örneğin, bir akademik kurum için bir WordPress sitesi yönetiyorsanız, öğrencilerden WordPress portallarına giriş yapmak için kampüs e-posta adreslerini kullanmalarını hatırlatmanızı isteyebilirler. IT departmanına giriş yapmak için yardım isteyen aramaları azaltmak için “Kullanıcı adı” ve “Şifre” kutularının altına “ @myuniversity.edu e-postanızı kullanıcı adınız olarak kullanmayı unutmayın ” yazan basit bir hatırlatma ekleyebiliriz.

    Bu, elbette, bir filtre kancasından ziyade bir eylem kancasıyla daha uyumlu olacaktır. En basit ayarı, bu tür ana kullanıcı giriş sayfasındaki metin düzenleme gibi, aslında filtreye herhangi bir veri döndürmez Çünkü.

    İlk olarak, eylemimizi tam olarak nereye bağlayacağımızı bulmamız gerekecek. Çoğu durumda, içerik eklemek istediğiniz PHP dosyasına bakmak çok anlayışlı olabilir. Giriş içeriğini içeren WordPress dosyasına bakıldığında, birkaç eylem tetikleyicisi vardır. Öğrencilere kurumsal e-postalarını kullanmalarını hatırlattığımız örneğimizde, giriş sayfasının PHP dosyasında oldukça ilginç olan aşağıdaki kodu fark edeceksiniz:

     do_action('login_footer');

    do_action işlevi, istek üzerine eylem kancamızı gerçekleştiren bir WordPress temel işlevidir. Tabii bu, bu kancaya eklemek istediğimiz tüm fonksiyonları kaydetmiş olmamız şartıyla.

    Bu durumda, "login_footer", WordPress ekibi tarafından önceden hazırlanmış bir kancadır. Yerleşik olmasına rağmen, yine de ona kendi kodumuzu ekleyebiliriz. Varsayılan olarak, bu kanca, genel oturum açma sayfasının altbilgi içeriğini yükler. Altbilgi, metnimiz için ideal bir yer olacaktır, bu nedenle bu sayfa bölümü kancasından yararlanıyoruz.

    Başlamak için wp-login.php dosyamıza yeni bir PHP işlevi ekleyebiliriz. Tek yapmamız gereken, şöyle bir metin satırı çıktısı almak:

     function add_uni_email_reminder() {
    
    <p>Kullanıcı adınız olarak @myuniversity.edu e-posta adresinizi kullanmayı unutmayın!< /p>
    
    }
    
    do_action('login_footer', 'add_uni_email_reminder');

    Bu durumda, wp-login.php dosyasında basitçe yeni bir "eylem" oluşturduk. Eylem kancasının işlevi adı (add_uni_email_reminder), parametre parantezleri olmadan, do_action()'ın parametre listesine eklenebilir ve altbilgi bir sonraki oluşturulduğunda çalıştırılmak üzere kaydedilebilir.

    WordPress'te Nasıl Filtre Kancası Oluşturabilirim?

    Şimdi yuvarlanıyoruz! WordPress kancalarının temellerini ve güçlerinden nasıl yararlanılacağını öğrendik. Hatta kendimizde küçük bir değişiklik yaptık! Geriye kalan tek önemli kısım filtre kancalarıyla çalışmak. Unutmayın, bunlar filtreleyebileceğimiz bir tür veri döndüren kancalardır. Bunlar, hareketli kancalardan biraz daha karmaşıktır, ancak artık kancaların temellerini anladığınıza göre, biraz daha kolay olmalıdır.

    WordPress filtre kancamızla başlayalım. İlk olarak, hangi özel filtreyi eklemek istediğimize karar vermemiz gerekecek. Müşterinizin isteyebileceği bir öğe, sayfa ekleme işlevini özelleştirmektir. WordPress kullanıcılarının yeni blog gönderileri ekleyebileceği yer burasıdır. Mümkün olduğunca basit tutmak için, "Başlık" metin kutusunda bulunan "Başlığı buraya girin" metnini düzenlemek istediğimizi varsayalım. Diyelim ki daha belirgin hale getirmek istiyoruz ve bunun yerine “Blog Yazısı Başlığını Girin” demesini istiyoruz.

    Aşağıdaki filtre kancası örneğimizde fonksiyonumuzun bir parametresi olduğuna dikkat edin. Ek olarak, filtremizin fiili yürütmesi ek bir "öncelik" parametresine sahiptir. Ayrıca kancamızı kaydetmek için kullandığımız asıl fonksiyonun "action" örneğimiz add_action ile tamamen aynı olduğunu fark edeceksiniz . Bu işlevin bir eylem kancası yerine bir filtre kancası olduğunu söyleyebilmemizin yolu, gerçekten çalıştırıldığında, WordPress çekirdek kodunda gördüğümüz gibi yürütülen işlevin application_filters( 'enter_title_here', __( 'buraya başlığı girin') olmasıdır. ), $yazı ); . İşlev adından da anlaşılacağı gibi filtreler uyguluyoruz.

    Bu genellikle yeni kullanıcılar için bir açma noktasıdır. Bu gerçekten sadece hafif bir ifade sorunu; Bunu geçtikten sonra, WordPress'teki kancalar ve filtreler arasındaki farkı deşifre etmek oldukça basit hale gelir! Daha fazla veda etmeden, bu yer tutucu metni değiştirmeye geçelim!

     işlev our_new_title_here( $başlık ) {
    
    $title = __( 'Blog Yazısı Başlığını Girin', 'metin-alanı');
    
    $başlık döndür;
    
    }
    
    add_action( 'enter_title_here', 'your_new_title_here', 10 );

    add_action işlevimizde "10" un ne anlama geldiğini merak ediyor olabilirsiniz. Umarım, ilk iki parametreyi anlarsınız; ilki varsayılan WordPress kancası, ikincisi ise enter_title_here öğesine eklediğimiz işlevin ve filtrenin adıdır . "10", bu filtreye atadığımız öncelik düzeyidir.

    Unutmayın, WordPress'teki hem eylemler hem de filtreler, bir dizi basamaklı "geri arama" veya çalıştırılan özel işlevlerdir. Bunlara farklı öncelik seviyeleri verilmiştir. Biraz sonra farklı sayıların ne anlama geldiğini, kabul edilebilir parametrelerin neler olduğunu vb. keşfedeceğiz. Bununla birlikte, şu an için filtreler ve eylemler için 10'un WordPress varsayılan "normal" öncelik düzeyi olduğunu anlamak önemlidir.

    WordPress Kancaları Nerede Depolanır?

    WordPress'in tüm bu eylemleri ve filtreleri nerede depolayabileceğini merak ediyor olabilirsiniz. WordPress çekirdeğine atıfta bulunduk, ancak bu yalnızca yerleşik eylemlerin, filtrelerin ve bunlara bağlı işlevlerin konumudur. Tecrübeli WordPress kullanıcıları muhtemelen bu kancaların WordPress kurulduğunda oluşturulan veritabanlarının hiçbirinde saklanmadığını bilir.

    WordPress'teki eylemlerin ve filtrelerin en benzersiz özelliklerinden biri, bunların hiçbir yerde gerçekten “depolanmamaları”dır! Bir eylem veya filtre ekledikten sonra, bu eylem veya filtreye WordPress sitemiz üzerinden global olarak erişilebilir. Hiçbir yerde saklanmasının mümkün olmadığını düşünüyorsanız, haklısınız!

    Yapısı oldukça karmaşık olmasına rağmen, tüm eylemlerimizin ve filtrelerimizin depolandığı bir PHP değişkeni vardır. Bu değişken geneldir ve $wp_filter olarak adlandırılır. Bu değişkenle doğrudan uğraşmayın!

    Teknik ayrıntılarla ilgilenenler için bu $wp_filter değişkeni bir PHP dizisidir. WP_HOOK türünde çok sayıda nesne içerir. wp-includes/class-wp-hook.php içinde okuyabileceğiniz PHP dosyası içinde önemli bir yöntem vardır: this->apply_filters() . Bu yöntem, tüm geri aramalarımızı tetikleyen ve özel filtrelerimizi ve kancalarımızı "kaydeden" şeydir. Esasen WordPress kancalarının ekmek ve tereyağıdır.

    WordPress'in bu harika özelliğinden tam olarak yararlanmak için, en yaygın WordPress kancalarından bazılarını bilmemiz gerekecek. Aşağıdaki hile sayfamızdan başka bir yere bakmayın!

    WordPress Kanca Listesi: WordPress Kancaları Hile Sayfası

    Küçük bir gerçekçilik dozu ile başlayalım: WordPress'teki her bir kancayı gözden geçirmemizin olası bir yolu yok. Neyse ki, bazı araştırmacılar merak edenler için (tam anlamıyla) her bir eylemin ve filtrenin bir listesini derledi. Tüm WordPress kancalarının tam listesini burada görebilirsiniz, ancak her bir kancayla ilgili güvenlik uyarılarına göz atmaya dikkat edin. "Kullanımdan kaldırıldı" olarak etiketlenenleri kullanmamalısınız. Bu, WordPress'in en modern sürümünde desteklenebilecekleri veya desteklenemeyecekleri anlamına gelir, ancak her iki durumda da yakında desteklenmeyecektir.

    Her durumda, zamanın %90'ında yalnızca birkaç WordPress kancasıyla ilgileneceksiniz. İşte WordPress'teki en popüler beş eylem ve filtrenin yanı sıra ne olduklarına dair kısa bir açıklama!

    1. add_setting() – Adından da anlaşılacağı gibi, bu eylem WordPress ayarlarınıza eklenir. Muhtemelen bu eylemi kullanıcıya yönelik herhangi bir sayfaya dahil etmek istemeyeceksiniz, ancak yönetim sayfalarını değiştiriyorsanız bu bir cankurtaran olabilir.
    2. application_filters() – Bu tanıdık geliyor mu? Olmalı, çünkü daha önce kullandık! Bu, bir kancayla ilişkili tüm geri arama zincirimizi hemen çağırır.
    3. esc_attr() – Bunun adı “kaçış HTML özniteliklerinin” kısaltmasıdır. HTML'den kaçış, HTML sembolleri için ASCII kodlarını kullandığımız anlamına gelir. Bu, neredeyse evrensel olarak sayfalara "girişi temizlemek" için kullanılır. Başka bir deyişle, bu eylem, bir kullanıcı bir form gönderdiğinde bir kanca çalışmasına eklemek oldukça arzu edilir. Özellikle siteler arası komut dosyası çalıştırma saldırıları ile kullanıcıların sitenize saldırmasını engeller.
    4. the_content() – Bu kancanın adı muhtemelen kulağa basit geliyor çünkü öyle! Sadece görüntülenen mevcut gönderinin içeriğini alır. Bu, kullanıcıların bir gönderinin içeriğini dışa aktarmalarına izin veriyorsanız idealdir. Örneğin, bazı siteler Premium kullanıcılara herhangi bir makaleyi PDF dosyası olarak dışa aktarma olanağı sunar.
    5. wp_nav_menu() – “WordPress Gezinme Menüsü” nün kısaltması , bu kanca bir eylem kancasıdır . WordPress sitenizi ilk oluşturduğunuzda oluşturduğunuz ana gezinme menüsünü basitçe görüntülemek için kullanılır. Önemli ölçüde farklı bir düzene sahip sayfalarınız varsa ve menünüzü alternatif bir alanda görüntülemek istiyorsanız bu harikadır.

    WordPress Kancaları Hangi Sırayla Çalışır? WordPress Kanca Tetikleme Sırası

    Ne yazık ki, WordPress kancalarının tam sırası, hayal edebileceğiniz kadar belirgin değildir. Bu, kancaların büyük hacminden kaynaklanmaktadır. Bir araştırmacı, bir WordPress sitesinin ana sayfası ziyaret edildiğinde çalışan kancaların sayısını ve bunların çalıştırılma sırasını saymak için bunun gelişmiş bir analizini yaptı.

    Bu yeterince karmaşık değilmiş gibi, bazı WordPress kancalarında çeşitli önceliklere sahip kancalar bulunur! WordPress kanca ateşleme sırası hakkında bu yazıdaki yüzlerce kancaya ve siparişlerine bir göz atabilirsiniz. Dikkat edin: Bu analizi, her şeyi kaybetmeyi göze alabileceğiniz bir test sunucusu dışında hiçbir şey üzerinde çalıştırmaya çalışmamalısınız!

    Varsayılan kancaların sırası hakkında pek bir şey yapamasak da, belirttiğimiz kancaların sırası hakkında bir şeyler yapabiliriz. Kancaların önceliği burada devreye giriyor. Daha önce bahsetmiştik.

    WordPress Kancalarında Öncelik Nasıl Çalışır?

    Bahsettiğimiz gibi, WordPress tarafından bir kancaya atanan varsayılan öncelik seviyesi “10” dur. Neye öncelik vermeye karar verirseniz verin, değerin pozitif bir tamsayı olması gerektiğini unutmayın. Bu, ne yazık ki “0”ın geçerli bir değer olmadığı anlamına gelir. Ayrıca, -100 geçerli olmaz ve 0,5 geçerli olmaz. Ancak, 1, 1111 gibi çalışır.

    Genel olarak, tamsayı ne kadar küçükse, öncelik o kadar düşük olur. Bir kancanın, örneğin 10 varsayılan değerini atadığınız bir kancadan sonra çalışmasını istiyorsanız, önceliğini 9 yapabilirsiniz. En düşük öncelikli kancanıza 1 verilebilir. Ek olarak, WordPress kancalarına aynı şekilde atanabilir. öncelik. Bu, hangi sırayla çalıştıklarını umursamıyorsanız.

    Özetleme: WordPress'teki Kancalar

    Yeni WordPress geliştiricileri için en büyük engellerden biri, bu bilgilerin çoğunun ne kadar standartlaştırılmamış olabileceğidir. Çok sayıda teknik blog bulacaksınız, ancak birçoğu dar konuları kapsar ve bunların bir araya getirilmesi zor olabilir.

    En iyi yol, sitenizdeki WordPress eylem kancalarını ve filtre kancalarını denemeye başlamaktır. Daha karmaşık WordPress kancaları oluşturduktan sonra, daha sık kullanma eğiliminde olduğunuz kancaları öğrenmeniz gerekir. Zamanla, bu kancaları ezberleyeceksiniz. Bu zorlu bir süreç ve hiç kimse bu kancaların her birini ezberleyemez.

    WordPress kodeksi, dünyanın bir sonraki en iyi WordPress geliştiricisi olma yolculuğunuzda kullanabileceğiniz en iyi kaynaktır.

    WordPress kancaları