WordPress Eklentilerinin En İyi Uygulama Geliştirme: Dosya Şablonları

WordPress’teki şablonlar hakkında konuştuğumuzda, genellikle temalardaki sayfa şablonu dosyalarına atıfta bulunuruz. Ancak, içeriği görüntülemek için bir şablon dosyası kullanan bir eklenti vardır ve bu, WordPress temalarını oluşturmada başka bir husus. Eklenti şablonu dosyasını değiştirebilir misiniz? Öyleyse nasıl? HTML oluşturan bir eklenti yaparsanız, tema ile nasıl kolayca değiştirebilirsiniz? Bu makalede bu soruları cevaplayacağım. Şablon nedir? WordPress şablon sistemi, WordPress mimarisinin en önemli sütunlarından biridir. Şablon dosyası “HTML, şablon etiketi ve PHP kodu karışımı içeren PHP dosyasıdır.”
Şablon dosyası, WordPress şablonu hiyerarşisi tarafından düzenlenen belirli bir şekilde yüklenir. Bazı şablon dosyaları temalarda aranır ve mevcut değilse geri dönüş kullanılır. Örneğin, otomobil listesi sitesi ‘araba’ özel yazı türünü kaydetti. Kullanıcılar belirli otomobiller için sitelerdeki sayfaları ziyaret ettiğinde, WordPress single-car.php adlı şablon dosyalarını arar. Varsa, genel yayınları görüntülemek için tek bir.php şablonuna geri çekilir. Bu şablona sahip olmak için bir tema gerekmez, ancak ne kadar çok şablona sahip olursa, temanın farklı içeriğin nasıl görüntülenmesi için daha ayrıntılı kontroller vardır:
En önemli şablon dosyası, şablon hiyerarşisinde daha spesifik bir şablon bulunamıyorsa, tüm yakalama şablonu olan index.php’dir. Tema yalnızca bir şablon index.php gerektirse de, tema genellikle farklı içerik ve bağlam türleri görüntülemek için birçok şablon içerir. Eklenti şablonları, şablon dosyasını kullanarak WordPress ve temalarla aynı şekilde eklenti, eklentinin HTML’yi ön uçta görüntülemesi gerekiyorsa, şablon dosyasını kullanmalısınız. Bu, işaretlemeyi kodunuzdan ayırmak için iyi bir uygulamadır, bu nedenle yalnızca HTML’yi oluşturmak için çok fazla print () ve printf () gerçekleştiren veya işlevde büyük bir HTML bloğuna sahip bir işlev yazmazsınız. Eklenti dosyanızı ayarlamanıza yardımcı olur ve MVC mimarisinden oldukça uzak olmasına rağmen (bunun için bir WordPress çerçevesine ihtiyacınız vardır), bu ‘ekran’ şablonunuzun genişletilebileceği ve değiştirilebileceği anlamına gelir. Eklenti dosyalarınızın düzenlenmemesine izin verirseniz, çıktı yapmak için kodunuzu birçok do_ace ve apply_filters çağrılarıyla mevcudiyetle bulursunuz. Tüm eklentilerin bunu yapması gerekmez, ancak Siteye HTML görüntüleyen eklentiler, E-Niaga eklentisi veya üyelik gibi eklentiler temaların olmasına izin vermelidir. Şablon kullanan ve geliştiricilerin gerçekleşmesine izin veren birçok eklenti var. WooCommerce, kolay dijital indirmeler ve WP kullanıcı yöneticisi (az önce aldığım eklenti) bu özelliğe sahiptir, ancak her biri farklı bir şekilde uygular. Bakalım nasıl yaptıklarını görelim.
Eklenti Şablonunu Değiştirme Bir eklenti şablon özelleştirmesine izin veriyorsa, şablon dosyasının eklentinin alt dizin yolunu koruyarak eklentisi slug adında eklentiden tema dizinine kopyalanması gerektiğine dair genel bir kural vardır. Örneğin, wp-content/woocommerce/şablonlar/checkut/form-checkout.php, wp-concent/tema/yourthemenMename/woocommerce/checkout/form-checkout.php’ye kopyalanacak. ihyaç olduğu gibi. Ancak, dijital indirmelerin kök tema dizinindeki EDD_Templates adlı bir dizinde ayarlanan şablonları bulmak kolaydır. Bu ad bir EDD_TEMLATES_DIR filtresi kullanılarak değiştirilebilse de: add_filter (‘edd_templates_dir’, function () {return ‘easy-digital-downloads’}); Şablonu diğer eklentilerden ayarlamak istiyorsanız, şablon dosyasının temasının nereye kopyalanması gerektiğini görmek için belgelerini kontrol etmek her zaman iyi bir fikirdir. Şablon hiyerarşisini kendi eklentinize uygulayın, her eklentinin şablonun yüklenmesini nasıl uyguladığını görelim, bu da eklentinizde hangi yaklaşımın kullanılacağına karar vermenize yardımcı olacaktır. WordPress WooCommerce yöntemi, şablonu yüklemek için wc_get_template_part işlevini kullanır ve bu da orijinal WordPress işlevlerini loc_template olarak adlandırır. Mucize burada meydana gelir. Üç konumda bir şablon dosyası bulma işlevi: Çocuk teması (varsa), ana tema ve kök wordpress’te WP-Incaudes/Tema Papu. İşlev daha sonra bulunursa bir şablon içerir.
Loca_template boş görünüyorsa, WooCommerce şablon sürümünü içerir. Bu işlev, WC_GET_TEMPLAT_PART filtreleri kullanarak şablon değişikliklerine izin verir, böylece diğer eklentiler WooCommerce Core şablonunu da değiştirebilir. Roll Kendi Dijital İndirmenizi benzer bir yaklaşım benimsemek kolaydır, ancak tema dosyasındaki şablonu bulmak için WordPress Locate_Template işlevini kullanmaz. EDD_GET_TEMPLATE_PART’ın kendisi, dizin dizisini bulmak için alan bir işlev yığını çağırır. Bu aynı konumu içerir: çocuğun teması, ana tema ve EDD eklentisi şablonu dizininin kendisi. Bir kez daha, bu yol bir EDD_template_paths filtresi kullanılarak filtrelenebilir. İşlev WP-Includes/Tema-CIT’de görülmeyecektir. Bulunduktan sonra şablon, Loca_Template kullanılan WordPress Load_Template’in orijinal işlevi kullanılarak yayınlanır.
WP Kullanıcı Yöneticisi, şablonu yüklemek için kendi işlevlerini yazmak yerine üçüncü taraf kütüphanesi, işini yapmak için Gamajo Şablon Yükleyici Kütüphanesi’ni kullanır. Get_template_part () ‘nın WordPress’teki işlevi, eklentiyi düşünerek hiçbir zaman gerçekten tasarlanmaz, çünkü yalnızca çocuğun ve ebeveynin temasını kontrol eden Locate_Template ()’ ya bağlıdır. Bu nedenle, eklentide bir şablon kullanan son geri dönüşü ekleyebiliriz, locate_template () özel işlevini ve get_template_part () özel işlevini kullanmalıyız. Buradaki çözüm sadece konfor için bir sınıf olarak sarıyor.
Eklenti daha sonra, eklentinin bazı özel değişkenlerini ayarlayarak Gamajo_Template_Loader sınıfını genişleten bir sınıf oluşturarak kütüphaneyi uygular. <? PHP sınıfı wpum_template_loader, filtre adları için gamajo_template_loader { /*** öneki uzatır. * * @var String */ korumalı $ filtre_priix = 'wpum'; /*** Dizin adı tema içinde şablonların bulunması gereken yer. * * @var String */ korumalı $ tema_template_directory = 'wpum'; /*** Mevcut eklentinin kök dizini. * * @var String */ korumalı $ plugin_directory = wpum_plugin_dir; /*** Şablonların eklentiye saklandığı yer dizin adı. * * @var String */ korumalı $ plugin_template_directory = 'şablonlar'; } Bu sınıf daha sonra şablon eklenti koduna her yüklendiğinde kullanılır ve kullanılır. Örneğin: $ kullanıcı); $ templates-> set_template_data ($ data)-> get_template_part (“profiller/{$ active_tab}”); Yukarıdaki örnekte, verileri şablona devam ettirmek için çağrı kodunu etkinleştirmek için set_template_data yönteminin kullanımını görebilirsiniz. Bu, her iki uygulama teknikine de sahip olmayan harika bir özelliktir. Bu, $ wp_query-> query_vars dizisine yeni bir öğe ayarlayarak verilerin şablona devam ettirilmesini sağlar, bu da daha sonra alt şablonda çağrılabilir:
user-> id, ‘user_cover’, true); ?> <a href=" kullanıcı); ?>
Diğer eklentiler, bu verileri her yaptığında $ wp_query olarak manuel olarak ayarlamalıdır veya şablon dosyasında daha fazla işlev yapabilirler. Bir eklenti geliştiricisi olarak, bir kütüphane veya paket kullanmak, aynı kodu tekrar tekrar, bazı eklentilerde yazmamız gerekmediği anlamına gelir ve kütüphaneyi yazan, katkıda bulunan ve savaşlarla test eden diğerlerinin uzmanlığından yararlanabiliriz. WordPress eklentisinde PHP kütüphanesini kullanarak bir kayıp var. Eklentinizin diğer eklentiler tarafından yayınlanan farklı bir kütüphane sürümü kullanabileceği cehennem bağımlılığına girebilirsiniz. WP Kullanıcı Yöneticisi, paket güncellemelerini kolaylaştırmak için bir kitaplık eklemek için bir besteci kullanır. Bununla birlikte, henüz değil, bağımlılık sorunundan güvenlidir, bu nedenle yaklaşan eklenti sürümünde besteci paketiyle ilgili ad alanı sorunlarından kaçınmak için Pete’nin yönergelerini kullanacağım. Ekstra Miles Yapmak Bir eklenti şablon dosyalarında bir değişiklik yaparsa ve temanızın şimdi ayarladığınız eski bir sürümü varsa ne olur?

Tabii ki, bu değişiklikler HTML veya sınıf adlarında zararsız ayarlamalar şeklinde olabilir, ancak genellikle kaçırmak istemediğiniz işlevsellikte değişiklikler vardır.Şablonda kaybolan önemli değişiklikler meydana gelebilir ve genellikle bunu yalnızca eklentiyi güncelledikten sonra sitenizi test ederken sorunları görürseniz bulursunuz.(Tüm eklentiler, site sahibi tarafından güncellendikten sonra aynı katı testi almaz.) WooCommerce bunu kullanıcı için kritik bir sorun olarak tanımlamıştır ve onu korumak için bir sistem oluşturmuştur.Ayarlar sayfası> durumunun bir parçası olarak, hangi şablonların temaya ayarlandığını gösterir ve sürümün süresi dolup taşmadığını ve güncellenmesi gerektiğini belirtir.

admin

Bir Cevap Yazın

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