Tema entegrasyonu sağlayan WordPress eklentileri geliştirmeye yönelik en iyi uygulamalar hakkında bazı görüşler almak istiyorum.
Bu soruyu sorduğumda anlam ifade etmek için, merak ettiğim bir senaryo için varsayımsal bir örnekle başlayayım. "Discography" adlı bir eklenti oluşturduğumu düşünün. Diskografi üç özel gönderi türü kaydeder: "Gruplar", "Albümler" ve "Parçalar". Eklenti ayrıca her yazı türü için ayrıntılar sağlayan meta kutular ve her yazı türünü düzenlemek için özel sınıflandırmalar sağlar. Bu yazı türleri, Mesajlar 2 Mesajlar eklentisi ile birlikte bağlanmıştır . Yönetici içinde, kullanıcı albümlerle ilişkilendirilebilen yeni bantlar ekleyebilir, bunlar da parçalarla ilişkilendirilir ve bunların tümü meta kutular ve sınıflandırmalarla kendilerine eklenmiş çok sayıda başka veriye sahip olur.
Şimdi, bu eklentinin kullanıcıların bu bilgileri girmesi için bir yönetici oluşturmasını istemiyorum; Veriler için bazı varsayılan görüntüler sağlamak istiyorum. Daha gelişmiş bir kullanıcı / geliştirici sadece bu yöneticiye sahip olmakta fayda vardır. Bu verileri alıp temada kullanması onun için yeterince kolay olurdu; ancak, bazı varsayılan görünümler olmadan, bu eklenti çoğu kullanıcı için işe yaramaz. Bu örnek için aşağıdakileri görüntüleyebilirsiniz (parantezler, bilgilerin şablon hiyerarşisine göre görüntülenme yollarını gösterir):
- Bantlar (single-prefix-band.php, single.php, index.php, kısa kod)
- Albümler (single-prefix-album.php, single.php, index.php, kısa kod)
- İzler (single-prefix-track.php, single.php, index.php, kısa kod)
- Bant Listesi (şablon-bant-list.php, sayfa-bant-listeleme.php, sayfa- {id} .php, sayfa.php, index.php, kısa kod)
- Albüm Listeleme (şablon-albüm-list.php, sayfa-albüm-listeleme.php, sayfa- {id} .php, sayfa.php, index.php, kısa kod)
- Albüm Zaman Çizelgesi (template-album-timeline.php, page-album-timeline.php, page- {id} .php, page.php, index.php, kısa kod)
Varsayılan şablon dosyaları, yazı türlerinin her biri için gereken tüm bilgileri görüntülemeyeceğinden, bu yazı türleri için bazı varsayılan sunumların olması önemlidir. Örneğin, Twenty Eleven teması varsayılan olarak bir albümün adını, kategorilerini, açıklamasını ve yayınlanma tarihini gösterir. Bir albüm için pek kullanışlı değil. Ben bant, çıkış tarihi, plak şirketi, albüm sürümleri, parça, vb çeker tek bir yazı şablonu sağlamak istiyorum. Bir eklenti geliştiricisi olarak bunu sağlamak için önemli olacağını hissediyorum. Şablonun her tema için işe yaramayacağını biliyorum, ancak kullanıcının temasıyla daha da entegre olabilecek bazı varsayılanlar olmalı.
Yine, bu durumu ele almanın en iyi yolunun ne olduğunu merak ediyorum? Bence aşağıdakilerden herhangi birini yapabilirsiniz.
Kısa kodlar
Kısa kodlar, geliştiricilerin sitenin herhangi bir yerine bant, albüm, parça, grup listesi vb. Eklemelerine izin vermek için çok esnek ve kullanıcı dostu bir yol olarak kullanılabilir. Belirli sayfalarda bantlar oluşturmak veya her bant için ayrı sayfalar oluşturmak yararlı olacaktır (çok verimli değil, ancak bazı kullanıcılar işlere bu şekilde yaklaşıyor). Kısa kod, istenen verilerin güzel bir varsayılan görünümünü sağlayacak olan sağlanan bir CSS dosyasına bağlı olan HTML oluşturur. Her şey eklenti dosyalarında bulunacaktı ve tema ile hiçbir şey yapılması gerekmeyecekti.
Şablon Dosyaları
Eklenti, şablon dosyalarıyla birlikte de gönderilebilir. Şablon dosyaları güzel bir varsayılan görünüm için işaretlenebilir ve stillendirilebilir. Yazı türleri görüntülendiğinde temanın doğru şablonları bulabilmesi için kullanıcılarınızın dosyaları tema klasörüne taşıması için talimatlar verebilirsiniz. Hatta kullanıcının dosyaları tek bir tıklama ile taşımasına izin vermek için bir arayüz sağlamak kadar ileri gidebilir (not: Kullanıcının tema klasöründe aktivasyon sırasında dosyaları oluşturmayacağım çünkü temasını dosya başlatmadan kötülük yapmadan kötülük yapıyorum) .
Ayrıca, bu dosyaları eklenti klasöründen çıkarmadan kullanmak ve her şeyi kendi içinde tutmak için filtreleri de kullanabilirsiniz. Bu amaçla kullanılan "template_include" ve "{$ type} _template" filtrelerini gördüm. Aslında, temalar klasöründeki şablonları kullanabilir ve yoksa, varsayılan görünümleri sağlamak için bu filtrelere geri dönebilirsiniz.
Soru
Sunulan fikirler herhangi bir şekilde sorunluysa ve dahil etmediğim alternatifler varsa, başkalarının bu durumlar için en iyi uygulamalar olduğunu düşündüklerini bilmek isterim.
Teşekkür ederim!