WordPress kancaları için yeni başlayanlar için eksiksiz rehber
WordPress sayfasına mevcut geliştiricilerden biriyle bakarsanız, bazen bazı JavaScript ile HTML ve CSS’nin çoğundan oluştuğu izlenimini edinebilirsiniz. Ancak, gördüğünüz şey sadece son ürün var. Arka planda, verilen birçok WordPress sayfası aslında PHP işlevlerinden ve veritabanı sorgularından oluşturulmuştur. Bu, daha sonra sayfaları görülebilen bir biçimde serbest bırakan tarayıcı tarafından yorumlanır. CSS sığ değişiklikler (renk, boyut vb.) Yapmak için iyi işlev görse de, daha büyük bir yapısal değişiklik yapmak istiyorsanız, kaynak kodla uğraşmalısınız.
Bunu yapma olanaklarından biri, ilgili kod satırlarını çekirdek dosyada bulmak ve sizinkiyle değiştirmektir. Bu (yadsınamaz) başarılı olan ve bazı insanların onu kullanmaya devam ettiği bir yöntemdir. Ancak, bu uygulamanın dezavantajı bir sonraki WordPress güncellemesidir, tüm ayarlamalarınız kaybolacaktır. Çekirdek dosyanın üzerine yazılır ve – – poof – tüm değişiklikleriniz kaybolur. Ayrıca, yenilemek iyi bir fikir değildir, çünkü ciddi bir güvenlik riskine neden olur. Peki ne yapmalı? Neyse ki, WordPress’teki kodu gerçekten değiştirmeden değiştirmenin bir yolu var. Kulağa imkansız mı? Pekala, sizi WordPress Hook ile tanıştırayım.
WordPress Hook nedir? Kancalar çok güçlü bir araçtır. Nasıl kullanılacağını bilmek, eklentilerin ve temaların geliştirilmesi için en önemli kavramlardan biridir. Örneğin, kancalar daha kolay tema ayarlamalarına izin vermek için Genesis gibi tema çerçevelerinde yaygın olarak kullanılır. Ama seni korkutmasına izin verme. Bir geliştirici olmasanız ve sitenizde değişiklik yapmanın daha zarif ve etkili yollarını arasanız bile, yine de WordPress kancalarını öğrenmekten yararlanabilirsiniz. Peki onlar neler? Her şeyden önce, kancalar kolayca tanınır. DO_ACTION () veya Applate_filters () ile sarılmış bir kod parçası gördüğünüzde, kendinize bir kanca buldunuz. Hem WordPress’in çekirdeğinde hem de eklentiler ve temalarda görünürler. ?> [/PHP] WP_HEAD’in arkasında ne olduğunu görmek için WordPres Core dosyasına bakarsanız, aşağıdakileri bulacaksınız: [php] wp_head () function {do_action (‘wp_head’); } [/Php] Burada pek bir şey olmadı. Bu kod parçası wp_head adlı bir işlevi yapar ve bir kancaya (do_raction (), hatırla?) Nasıl yardımcı olur ve hatta ihtiyaç duyar? Sana söyleyeceğim. Kod gerçekten herhangi bir işlevi yerine getirmese de, wp_head’i bir tür çapa haline getirir.
Bu, WordPress WP_HEAD işlevini işlemeden sonra yürütülecek olan diğer işlevleri ve kodları kendisine bağlayabileceğiniz anlamına gelir. Sonuç olarak, özel kodunuzun fiziksel olarak aynı yere yerleştirilmesi gerekmez, ancak dışarıdan çizilir. Bu şekilde, çekirdek yapıdaki kendi işlevlerinizi çekirdek dosyadaki herhangi bir kodu değiştirmeden çalıştırabilirsiniz. Oldukça tatlı, ha? En iyi yanı, WordPress’i ne sıklıkta güncelleseniz de, değişikliğiniz hala orada olacak ve üzerine yazılmayacak. Belirli? O zaman biraz daha derine dalalım. Ana aracınız: İşlevselliği değiştirmek için eylemler ve filtreler WordPress kancaları aracılığıyla iki ana yola güveniyoruz: eylemler ve filtreler. WordPress’teki uygun işlevler add_action () ve add_filter () ‘dır. Kanca terimi genellikle bu işlevler için genel bir terim olarak kullanılır ve aynı zamanda yer tutucular için bunları ilişkilendirebiliriz. Sorunları daha kafa karıştırıcı hale getirmek için bazen eylem kancalarını ve kanca filtresini de duyacaksınız. Ancak, bu konuda çok fazla endişelenmeyin. Arkasındaki metodolojiyi anlamanız sizin için daha önemlidir. Eylemler ve filtreler genellikle sözdiziminde çok benzer olsa da, çalışma şekli çok farklıdır. Bir eylemi kapsayıcıyla ilişkilendirdiğinizde, eylem zaten o konumdaki herhangi bir işleve ek olarak gerçekleştirilir.
Bu nedenle, kancalar sitenize mal eklemek için kullanılır. Örneğin, web sitesi başlığınızda veya altbilginizde yeni bir widget alanı oluşturmak istiyorsanız, bunu eylem kancalarıyla yapacaksınız. Filtreler ise mevcut işlevleri değiştirir. Veritabanları ve tarayıcılar arasında otururlar ve her iki yönde gönderilen kodu değiştirebilirler. Filtre kancalarının kullanımının bir örneği, WordPress yönetici çubuğundaki “Howdy” selamlarını özel metinle değiştirmek istiyorsanız. Eylem ve filtre arasındaki temel fark, ikincisinin parametreyi orijinal işlevine geri döndürmesidir. Bu, filtrelenmesi, belirli bir şekilde değiştirilmesi ve ardından selefine tweetlenen parametreyi döndürmesi amaçlanan herhangi bir argüman aldıkları anlamına gelir. Öte yandan, sadece bazı ek kodları işlevine atarlar. İlişkili ve genellikle başka neyin var olduğunu umursamayın. Anladım? Endişelenmeyin, eğer ayrıntılarda hala bulanıklıysanız, gerçek kodu aldıktan sonra her şey daha net olacaktır. Kanca Yapısı Eylemleri ve filtreleri nasıl kullanıyorsunuz? Genel yapı biraz böyle görünüyor: [php] add_action (‘hook_name’, ‘your_function_name’, [öncelik], [cespeded_paramemers]); Function_anda () {// kod burada} [/php] Gördüğünüz gibi, filtre veya eylem kancası dört ana parçadan oluşur. Her şeyi her zaman dahil etmeye gerek yok, ama varlığının farkında olmalısınız. Her birini ayrıntılı olarak tartışalım.
1. hook_name Özel işlevimizin çalıştırılmasını istediğimiz konumun adı. Bu, do_action () veya appling_filters () ‘da sarılmış bulduğumuz işlevin adı olacaktır. Önceki örneğimizde WP_HEAD’di. Not: Hook’un adına bazen etiket denir. 2. nama_aduni_anda Bu, etiketimizle ilişkilendireceğimiz işlevin adıdır. Kendinize, standart PHP işlevlerine ait olabilir veya zaten WordPress’in özünde bulunan. Kendinizi yazmaya karar verirseniz, hatırlanması gereken bazı şeyler şunlardır: İlk olarak, adınızın yalnızca harflerden, sayılardan ve alt çizgilerinden oluştuğundan emin olun. Kelimeyi ayırmak için bağlantı işaretini kullanmayın, bu WordPress kodlama standartlarına aykırıdır. Ayrıca, PHP’nin aynı adın birden fazla işlevine izin vermediğini bilin. Bu nedenle, çarpışmaları önlemek için benzersiz bir isim seçmeniz önemlidir. Bunu başarmak için genel uygulama, adınızı baş harflerinizle veya diğer olağandışı tanımlayıcılarınızla başlatmaktır, örneğin Nick_AWesome _function. Ayrıca işlevinizin adının anlaşılabileceğinden ve makul olabileceğinden emin olmalısınız. Her ne kadar herhangi bir isim seçebilmenize rağmen, kodunuz kendiniz belgelenmişse, başkalarının işinizi oluşturması çok daha kolaydır. 3. Öncelik bağımsızlığı Öncelik, bazı işlevler aynı yer tutucusuna bağlanmışsa yürütülen kod sırasını belirler.
Öncelik 1 ve 999 arasındaki sayılarla belirlenir ve varsayılan 10’dur. Sayı ne kadar düşük olursa, işlev ne kadar erken gerçekleştirilir. Bu genellikle önemli olmasa da, bazı durumlarda önceliğin çok önemli olduğunu belirtmek çok önemlidir. Bu bölüm, filtre kancasına özel dikkat gerektirir, çünkü birbirine gelebilir. Önceliklerin dosyadaki işlevler sırasından öncelikli olduğunu belirtmek de önemlidir. Biri başlangıçta, diğeri de sonunda olsa bile, ikincisinin daha yüksek bir önceliği varsa, WordPress önce çalıştırır. 4. Kabul Edilen_Parameters Bu ifade, herhangi bir işlev tarafından iletilen parametrelerin sayısını verir. Varsayılan ayarlar birdür. Alınan parametrelerin genellikle isteğe bağlı olduğunu tanımlayın. Bununla birlikte, özellikle birden fazla argüman geçerse, filtre kancası için genellikle gereklidir. Bu durumda, parametre sayısı açıkça tanımlanmalıdır. Bundan sonra bittikten sonra, kalan tek şey çalıştırmak istediğiniz işlevi yazmaktır. Kulağa kolay geliyor, değil mi? Tamam, teoriyle yeterince, bazı somut örneklere bakalım. Örneğin, aşağıdaki kullanım durumları için, yirmi beş tema üzerinde çalışan bir geliştirme sitesi kullanıyorum. Kancanın adını merak ediyorsanız. İlk olarak, altbilgide bazı değişiklikler yapmak istiyorum.
Footer.php tema dosyasını gördüğümde, aşağıdaki kodu buluyorum: [PHP] eylemi yapın (‘yirmi beşteen_kredit’); kanca. Bu durumda, sitemin altbilgisine kişisel selamlar eklemek istiyorum. Bunu böyle yapabilirim: [php] add_action (‘yirmififteen_credits’, ‘nick_footer_greeting’); Nick_footer_greeting () işlevi {echo ‘Merhaba, siteme geldiğiniz için teşekkür ederim!’; } [/Php] Şimdi anlamanız gerektiği gibi, ilk satırla yirmi beş krediye nick_footer_greeting adlı özel bir işlev ekliyorum. Bundan sonra özel bir kod görünür. Burada yaptığım şey WordPress’e yirmi beş kredinin yanında özel bir selamlama puanı almasını söylemek. Sonuçlar şöyle görünüyor: Şimdi o kadar zor değil, değil mi? Endişelenme, filtre de değil. Bir sonraki örneğimde, gönderi gönderimin başlığında bir değişiklik yapmak istiyorum. Ön sayfama her gönderi koyduğumda, “Son Haberler” kelimelerinin başlıktan önce görünmesini istiyorum.
Bunun için şuna benzer özel bir işlev oluşturacağım: [php] nick_breaking_news_filter function ($ title) {if (is_sticky () && in_the_loop ()) {return ‘son haberler:’. $ Başlık;} Değilse {back $ title;}} add_filter (‘the_title’, ‘nick_breaking_news_filter’); [/php] Hedeflediğim kanca the_title.Bu, burada filtreleyebileceğim $ Title adlı bir parametre içerir.Benim işlevim temel olarak WordPress’e bu parametreyi almasını, uygulanan gönderinin yapışkan bir yazı olup olmadığını kontrol etmesini ve eğer öyleyse, önüne “Son dakika haberleri” eklemesini söyler.Aşağıdaki sonuçlar:
İyi görünüyor, değil mi? Gördüğünüz gibi, bu tür bir değişiklik kolayca yapılabilir. Bir şey daha: Bir durumda önce bir işlev ve sonra kanca yaptığımı fark etmiş olabilirsiniz, diğerinde önce bir kanca, sonra özel kodum yazdım. Her ikisi de işe yarayacak, hangisini sevdiğiniz size kalmış. WordPress Hooks nasıl uygulanır Tamam, şimdi kancanın ne yaptığını, ne tür bir şekle ve kendi kancanızı nasıl yazacağınızı zaten anlamalısınız. Ancak, soru hala özel kodunuzu nereye yerleştireceğinizdir. Kanca iki şekilde uygulanabilir: ya function.php (tercihen çocuk temasında) veya özel bir eklenti yaparak. Seçim size kalmış olsa da, son yöntem, işlevlerinizi doğrudan arka uçtan WordPress’ten etkinleştirip devre dışı bırakabileceğiniz avantajına sahiptir. Sunucunuza çağrı gerekmez. Kendi eklentinizi yapma ihtimalinden korkuyorsanız, yapma. Bu gerçekten zor değil. Kendi stil sayfanızı ayarladıysanız veya functions.php dosyasına bir kod eklediyseniz, bunu yapmaya hazırsınız. Eklenti rotasını seçmenin tek farkı, tüm işlevleri bir dosyaya almak yerine, her bir işlevi her birine yerleştirmeniz ve başlık eklentisini eklemenizdir: [php] <
? PHP/ * Eklentinin Adı: Özel eklentim * /// Özel işleviniz ve kancanız, burada açın [/PHP] Şimdi yapmanız gereken dosyanızı wp-content/eklentilere (kendi yöneticileri olan veya olmadan) yerleştirmektir. ve bitti. Bu sizi bunalmış yaparsa (endişelenme, orada bulundum), eklenti adlı, sizin için bir başlık oluşturabilecek bir eklenti de var. WordPress tema kancalarının kaldırılması, eylemleri veya filtreleri tamamen silmek istediğiniz bir zamana sahip olabilir. Bu, kendi işlevlerinizden biriyle bir çatışma varsa veya bir yerde eylem veya filtrelemek ve başka bir yerde tekrar ilişkilendirmek istiyorsanız olabilir. Her iki durumda da, bu, remove_ace () ve rötuş_filter () aracılığıyla elde edilebilir. Örneğin, WordPress sitenizin diğer bloglara ping atmasını önlemek için yeni bir yayın yayınladığınızda, aşağıdaki kodu kullanabilirsiniz: [php] remove_action ('publish_post', 'jeneric_ping'); [/php] Yapmak istiyorsanız İlişkisiz işlevler başka yerlerde, bunu add_action () add_action () aracılığıyla yapabilirsiniz. Yalnızca kısa bir uyarı: Silmek istediğiniz kancanın 10 varsayılan dışında bir öncelik ifadesi varsa, serbest bıraktığınızda bunu belirlemeniz gerekir. Ayrıca, elbette, ne yaptığınızı bilmediğiniz sürece hiçbir şeyi silmeyin!
WordPress Hooks ile çalışmanın en büyük bölümlerinden birinin kaynağı, doğru yer tutucuyu bulmaktır. Biraz daha kolay hale getirmek için, aramada size yardımcı olacak üç kaynak var. 1. WordPress Codex: Eylem Referanslarının Referansı (umarım tamamlandı) Tüm eylemlerin tüm eylemleri WordPress’in özündedir. 2. WordPress Codex: Filtre, WordPress çekirdek filtre kancaları için aynı listeye başvurur. 3. WordPress Hooks Veritabanı Adam Brown Hook’ların kullanıldığı her ne olursa olsun, kancanın sürümü tanıtılır ve kancanın hala geçerli olup olmadığı. Veritabanı ayrıca yalnızca yeni kancalar, silinen kancalar, sürümlere göre kancalar ve daha fazlasını görüntülemek için birçok filtre seçeneğine sahiptir. Sonuç Kancası WordPress, sadece WordPress geliştiricileri için değil, önemli ve güçlü bir araçtır. Kancaların nasıl kullanılacağını bilmek, her WordPress kullanıcısının herhangi bir dosyaya dokunmadan temel işlevselliği değiştirmesine izin verir. Eylemler ve filtreler, işlevleri eklemenize ve değiştirmenize ve hayal edilebilecek neredeyse tüm sonuçlara ulaşmanıza olanak tanır. Gerekirse kancayı kaldırma yeteneği ile eşleştirilen bu, sitenizin düzenini istediğiniz gibi sıfırlayabileceğiniz anlamına gelir. En iyi bölüm: Çekirdek dosya dokunulmadan kaldığından, tüm değişiklikler yenilenir. Sadece WordPress kancalarını kullanmaya alışmanızı tavsiye edebilirim. Çok daha dinamik bir platformla çalışırlar. Ayrıca, tema kancaları aracılığıyla değişiklikler sunan diğer temaların ve temaların çerçevesine geçtikten sonra, onu boşa harcamazsınız. WordPress Hooks’a aşina mısınız?