WordPress Eylem Kancalarını Tema Özelleştirmede Kullanma
WordPress alt temaları, bir temanın görünüşünü ve verdiği hissi kişiselleştirmek için nispeten kolay bir yol sunar. Temanın seçenekleri size yeterli tasarım seçeneği sunmuyorsa, alt temanın style.css adlı varsayılan stil sayfası dosyasına yalnızca yeni bir kural ekleyebilirsiniz. Ama sen de istersen ne olacak temanın işlevselliğini değiştir? WordPress işlemlerinin sizin yardımınıza geldiği durumlardan biridir..
WordPress, yüksek özelleştirilebilirliği nedeniyle kısmen popüler oldu. WordPress Çekirdeği, geliştiricilerin varsayılan işlevselliği değiştirmelerini veya geliştirmelerini sağlayan farklı kancalarla yüklenmiştir. Ayrıca, dahil etmemize izin verilir özel kanca temalarımızda ve eklentilerimizde diğer geliştiricilerin kodumuzu gereksinimlerine göre kolayca ayarlamasına yardımcı olma.
WordPress Hooks Hakkında
WordPress kancaları, uygun şekilde kullanırsanız, istediğiniz balıkları doğru noktada yakalayabilmeniz anlamında gerçek hayat kancalarına benzer şekilde çalışır..
Yapabilirsin yakalanan bir işlevi kaldır (örneğin, düşük seviyeli kullanıcılar için WordPress yönetici çubuğunu kaldırabilirsiniz), bozulmadan bırak ve geliştir kendi işlevselliğinizle (örneğin, bir temaya daha fazla menü veya widget alanı ekleyebilirsiniz) veya geçersiz kıl (örneğin, bir çekirdek fonksiyonun davranışını değiştirebilirsiniz).
WordPress'te iki çeşit kanca vardır: eylemler ve filtreler. Bu yazıda nasıl yapabildiğimize bir göz atacağız. Tema özelleştirmede aksiyon kancalarını kullanın.
WordPress Hooks Nasıl Çalışır?
Çok basit bir dil kullanmak, eylemler onu belirt WordPress sayfa yaşam döngüsü sırasında bir şey oldu: sitenin belirli bölümleri yüklenmiş, belirli seçenekler veya ayarlar kurulmuş, eklentiler veya araçlar başlatılmış, vb..
Filtreler -dan farklı eylemler doğada. Bunlar için kullanılırlar veri iletmek, ve değiştir, yönet veya yolunu kesmek Ekrana göstermeden önce veya kullanıcı verilerini veritabanına kaydetmeden önce.
WordPress sayfa yaşam döngüsünün her önemli noktasında bir aksiyon veya bir filtre yapabileceğimiz kanca varsayılan davranışı değiştirmek için özel kodumuzu ekleyin ihtiyaçlarımıza göre.
Bir istek sırasında çalışan belirli eylemler ve filtreler, kullanıcı aracısı tarafından hangi sayfanın istendiğine bağlıdır: örneğin, tek bir gönderi isteğinde bulunan tekli iletilerle ilgili kancalar mevcuttur, ancak sitenin diğer bölümleriyle ilgili kancalar (örneğin yönetici alanı) değil.
Eylem Hooks bul
WordPress Kodeksinin Eylem Referansı, farklı istekler boyunca yürütülen işlemlere ayrıntılı bir genel bakış sunar. Önemli olan, bir görevi başarmak istiyorsak, yapmamız gereken şey doğru yere kanca, ondan önce veya sonra değil, aksi takdirde işlem tamamlanmayacak.
Mesela eğer istiyorsak Google Analytics kodumuzu bir siteye ekleyin Bizim ihtiyacımız eylemimizi altbilgi yüklenmeden hemen önce kancalayın.
Tema özelleştirme hakkında konuşursak, eylem kancaları iki farklı yerden gelebilir: WordPress Çekirdeği ve tema kendisi. Kancası olmayan temalar var, ancak diğerleri geliştiricilere bir kaçını veya daha fazlasını sunuyor - bu her zaman tema yazarının tercihi. Varsayılan Yirmi Onbeş Temanın 'yirmi onbeş_c_c' adı altında altbilgi özelleştirmesi için yalnızca bir eylem kancası var.
Kaynak koduna göz atmak isterseniz, eylem kancalarını da kolayca bulabilirsiniz. İşlem kancaları do_action () WordPress işlevli koda eklenir.
'Do_action' ifadesi için daha gelişmiş bir kod düzenleyicide hızlı bir arama yaparsanız - aşağıda Eclipse'de yaptığım gibi - özel işlevlerinizi çekirdeğe bağlayabileceğiniz noktalar hakkında bir liste görebilirsiniz. Ben arandı / / Wp-içeren klasörünü açabilir, ancak / Wp-admin / WordPress panosuyla ilgili eylem kancalarını içeren klasör (yönetici alanı).
İyi olan şey, eylem kancalarının adlarının genellikle kendi kendini açıklayıcı olması. genellikle kodun içinde güzel bir yorum Bu, verilen eylem kancasının kullanmak istediğiniz sebep için iyi olup olmadığı konusunda size daha fazla bilgi verebilir..
Örneğin, 'widgets_init' eylem kancasının önündeki kod yorumu şunu söylüyor: “tüm varsayılan WordPress widget'ları kaydedildikten sonra tetiklenir”. Bu eylem kancasının önündeki koda bir göz atarsanız, tüm varsayılan WP widget'larının başlangıçlarını ondan önce bulabilirsiniz - böylece yorumun yalan söylemediğinden ve kendi özel widget'ınızı kaydetmek istediğinizden emin olabilirsiniz. bu doğru nokta olacak.
Çoğu durumda kaynak kod bize Codex'ten çok daha fazla bilgi sağlar, bu nedenle içinde hızlı bir şekilde nasıl gezineceğinizi öğrenmek iyi bir fikir olabilir..
Kendi İşlemlerinizi Ekleyin
Kendi eyleminizi eklemek istediğinizde, özel bir işlev oluştur ve bu işlevi belirli bir eylem kancasına bağlayın add_action () WordPress işlevini kullanarak. Add_action () işleviyle eklenen özel eylemler genellikle yerinde tetiklenen çekirdek uygun do_action () işlevini çağırdığında.
Basit bir örnek görelim.
İhtiyacınız olan Aksiyon Kancasını Nasıl Bulunur?
Özel favicon'unuzu sitenize eklemek istediğinizi varsayalım. Öncelikle, kendi işlevselliğinizi bağlayabileceğiniz doğru eylem kancasını bulmanız gerekir..
Düşünelim. Düz bir HTML sayfasına favicon eklemek isteseniz nereye koyardınız? Tabii ki, içine yerleştirmeniz gerekir
HTML dosyasının aşağıdaki işarete sahip kısmı:İhtiyacınız olan aksiyon kancası yükleme ile ilgili Bölüm.
(1) Eylem Referansını açın ve ne sunabileceğini görün. Şanslıyız, sanki eylemlere göz atarsak, yalnızca bir tane bulabiliriz, wp_head, ismine dayanarak yükleme işlemiyle ilgili olma olasılığı vardır.
Bölüm.(2) Emin olmak için, hadi WordPress Kodeksindeki belgeleri kontrol edin. Codex bunu tavsiye eder “Bu kancayı, işlevinizin tarayıcıya çıkış çıktısını alarak kullanırsınız.”, yani şu anda bizim için mükemmel görünüyor. Ama kaynak kodda kontrol edelim.
(3) Bu kanca, yönetici alanıyla ilgili olmadığından, aramamızdaki arama işlemini yapmamız gerekir. / / Wp-içeren Klasör. Eğer 'wp-head' kelimesini ararsak, bu spesifik eylem WP Core tarafından birçok kez kullanıldığı için birçok sonuç elde edeceğiz..
Tanımlandığı noktayı aramamız gerekiyor, bu yüzden ifadeyi arayın do_action ('wp_head'. Parantezleri tamamlamadığımızı unutmayın, çünkü bu işlemin parametreleri olup olmadığına henüz emin olamayız..
Eclipse, içinde bulunabilecek yalnızca bir sonuç döndürür. /wp-includes/general-template.php dosya. Eylem kancası tanımından önceki yorum bunu söylüyor “ön uçtaki head etiketindeki komut dosyalarını veya verileri yazdırır”, öyleyse şimdi bundan emin olabiliriz wp_head ihtiyacımız olan eylem kancası.
Parametreleri Kontrol Etmek
Kendi eylemlerinizi eklediğinizde, kullanmak istediğiniz kancanın parametre alıp almadığından emin olmanız gerekir. Bunu do_action () işlevine bakarak kolayca bulabilirsiniz..
Do_action () işlevinin sözdizimi aşağıdaki gibidir:
do_action ('name_of_action' [, $ parametre1, $ parametre2,…])
Yalnızca eylemin adı gerekli, parametreler isteğe bağlıdır. Do_action () işlevinin ilgili çağrısında argümanlar bulursanız, bunları, oluşturduğunuz özel işlev bildirgesine ekleyin.
Herhangi bir şey bulamazsanız, özel işleviniz bağımsız değişkenler olmadan çalışmalıdır. Wp_head eylem kancasının do_action () tanımında hiçbir parametre yoktur..
Bunu parametre alan bir eylem kancasıyla karşılaştıralım. 'Wp_register_sidebar_widget' adlı eylem kancası, her zaman kancaya bağladığınız özel işleve geçirmeniz gereken bir parametreyi alır.
İki durumun do_action () sözdizimindeki farkı görelim:
do_action ('wp_head'); do_action ('wp_register_sidebar_widget', $ widget);
İlk durumda hiçbir parametre yoktur, bu nedenle özel fonksiyon aşağıdaki sözdizimini kullanır:
function my_function_without_parameters () …
İkinci durumda, her zaman özel işlev bildiriminize argüman olarak iletmeniz gereken bir parametre vardır:
işlevi my_function_with_parameters ($ widget) …
Özel İşlevinizi Nasıl Bağlayın
Şimdi ihtiyacımız olan her şeyi biliyoruz. Sitemizde favicon gösterecek özel fonksiyonumuzu oluşturalım.
İlk önce, herhangi bir argüman olmadan yeni bir fonksiyon oluşturun, sonra onu add_action () WordPress fonksiyonunun yardımıyla wp_head eylem kancasına bağlayın.
custom_add_favicon () echo 'işlevi'; add_action ('wp_head', 'custom_add_favicon');
Gerek adı geç eylem kancasının add_action () işlevine ilk argüman olarak, o zaman ihtiyacın var özel işlevinizin adını ekleyin.
Bunlar, add_action () işlevinin iki gerekli parametresidir. İki isteğe bağlı parametresi de var, öncelik ve kabul edilen argümanlar. Bunları nasıl kullanalım görelim.
Öncelikleri tanımla
Birçok durumda, aynı kancaya bağlı birden fazla işlem olduğu ortaya çıkar. Yani hangisi önce idam edilecek? Burası kullanabileceğimiz yer $ öncelikli isteğe bağlı parametre add_action () işlevinin.
Önceliği pozitif bir tamsayı olarak ekleriz, varsayılan değer 10. Bir eylemin erken yürütülmesini istiyorsak, daha düşük bir değer veririz, daha sonra yürütülmesini istiyorsak, daha yüksek bir değer veririz.
Eğer favicon'un erken orada olması gerektiğini düşünüyorsanız, önceki add_action () çağrımızı aşağıdaki şekilde geliştirebiliriz:
add_action ('wp_head', 'custom_add_favicon', 5);
Lütfen önceliklerin daima olması gerektiğini unutmayın diğer özel fonksiyonlara göre aynı eylem kancasını kullanan.
Kabul Edilen Bağımsız Değişken Sayısı Ekleyin
Parametreleri alan bir eylem kancası kullanıyorsanız kabul edilen argüman sayısını eklemeniz gerekir. Daha önce kullandığımız örneği görelim.
'Wp_register_sidebar_widget' eylem kancası bir parametre alır, bu yüzden özel işlevimizi bu kancaya bağladığımız zaman, add_action () işlevini çağırdığımızda bunu argüman olarak eklememiz gerekir..
Bu durumda kodumuz şöyle görünecek:
işlevi my_sidebar_widget_function ($ widget) // Kodunuz add_action ('wp_register_sidebar_widget', 'my_sidebar_widget_function', 10, 1);
Yapmamız gerektiğini unutmayın ayrıca önceliği ekle (biz burada varsayılan 10 seçtik) WordPress her parametrenin ne anlama geldiğini bildiğinden emin olmak için. Önceliği atlarsak, WordPress 1'in öncelik olduğunu varsayabilir kabul edilen argümanların sayısını gösterdiği gibi bu doğru değildir.
Sonuç
Tema özelleştirmesinde aksiyon kancalarıyla birçok deneme yapabilirsiniz. Örneğin, özel komut dosyalarınızı (JS) ve stillerinizi (CSS) wp_enqueue_scripts eylem kancasıyla veya wp_footer eylem kancasıyla Google Analytics kodunuzu ekleyebilirsiniz.
Sen sadece kendi eylemlerini ekle, ama aynı zamanda tüm işlevleri kaldır add_action () ile aynı mantığı kullanan remove_action () işlevinin kullanımıyla WordPress çekirdeğinden.
Eğer bir tema yazarıysanız ve genişletilebilir bir tema yapmak istiyorsanız, bunu yapmak iyi bir fikir olabilir. kendi özel eylem kancalarınızı uygun şablon dosyalarına ekleyin do_action () işleviyle.
Eğer yapmak istiyorsan, diğer geliştiricilerin parametreleri hakkında dikkatlice düşünün temanızı kim kullanacak argüman olarak geçmek zorunda kalacak Özel işlevselliklerini bağlamak istediklerinde.
Temalarının özel eylem kancalarının yerlerini tasarlarken, bunu unutma WordPress Core'un kendine ait kancalara sahip olduğu noktalara özel tema kancaları eklemek çok mantıklı değil.