WordPress neden yangın tarlaları gerektirir ve nasıl kullanılır?
WordPress siteleri için açık kaynaklı bir JavaScript yönetici arayüzü yapacağını ve Yunan tanrısı adı altında adlandırdığını hayal edin. Vay canına düşünebilirsiniz, çok havalı, onu sitemde çalıştırıp çalıştıramayacağımı bilmek istiyorum. Ancak daha sonra, gönderme ekranına, terimlere ve kullanıcıları düzenlemeye eklenen tüm özel metabox’ları ve diğer özel form türlerini düşünmeye başlarsınız. Metabox veya eklentinin hangi alanları kullanması gerektiğini bildirmek için bir standart yoktur. Her şey daha karmaşık olan “sadece çalışan” bir şey yapmak. Özel API tabanlı arayüz, önce sipariş edilen çözümü inşa edebilen ve sürdürebilen bölgeleri olmaya devam etmektedir.
Ben de dahil olmak üzere birçok insan, Ateş tarafından yönlendirilen WordPress’in geleceği hakkında geniş bir şekilde konuştu. Geri kalan API’de tork için yazdığım ilk makalede, WordPress Andrew Nacin’in ana geliştiricisi 2014’te Wordcamp Milwaukee’deki izleyicilere söylediklerini tekrarlıyorum: Katkıda bulunanların geleceğin bir parçası olmak istedikleri en iyi proje WordPress’in dinlenme ateşi ve daha sonra meta veri projesi denir. API dinlenmesinin kısmı şu anda çekirdekte ve şimdi API Fields Projesi olarak bilinen meta veri projesi büyük ilerleme kaydetti, ancak daha az katkıda bulundu ve çekirdeğe hazır değil.
WordPress çekirdeğinin bir saha ateşi varsa ve eklenti alanını bildirmek için kullanıyorsa, bu makalenin başında sunduğum sorun çözülecektir. JavaScript tabanlı arabirimler yapan geliştiriciler, her eklenti ve programlanmış için depolama alanının, türü ve konumunun adının her eklenti için önemli bir metabox ürettiğini görebileceklerdir. WordPress’in temel görevi, yeni ve daha iyi arayüzler sağlamak için altyapı sağlamaktır. Dinlenme ateşi için altyapı doğru yönde büyük bir adımdır, ancak yangın alanları o kadar önemlidir. Yalnızca Calypso’yu tutan bir yangın alanı yok, aynı zamanda “çalışan” jenerik olmaya çalışan WordPress için her türlü uygulamayı veya alternatif kullanıcı arayüzlerini tutacaktır. Olasılık açıktır. Scott, API Fields Projesi’nin ana geliştiricisi, 10UP’daki Kıdemli Web Mühendisi ve Pods Framework’ün ana geliştiricisidir. Bana ne dediğini anlatmak ve bir meta düzenleyici yapmak için API alanlarını nasıl kullanacağınızı göstermek istiyorum. Ateş alanında ilerleme -Ocak ayının ortalarında Scott, API Fields projesi hakkında kapsamlı bir güncelleme yayınladı. O zamandan beri, o ve diğer katkıda bulunanlar bu projede daha çok çalıştılar. Bitmiş olmasa da ve daha fazla yardım gerektirebilse de, bir alanı bildirmek için bir standart yapmak için temel oluşturulmuştur. Bu, tüm yayınları, kullanıcıları, meta alanları veya eklentilerin veya temaların ihtiyaç duyduğu seçenekleri içerir.
API Fields projesi sadece alanların beyan edilmesi değil, aynı zamanda alanın düzenlenmesi için otomatik olarak yönetici ve ön uç formlarının oluşturulmasına izin verir. Scott, API alanlarının geliştiricilerin arayüzleri için “özel arayüzler ve kütüphaneler oluşturma” gerekliliğini engelleyeceğini söyledi. Tüm bu tekrarlanan çalışmalar “birbirleriyle konuşamayan, kaynakları paylaşamayan ve onu inşa eden geliştiricilerin sürekli dikkatini çekmeyen yüzlerce ada yarattı, çünkü WordPress büyümeye ve etrafında değişmeye devam ediyor. Bu, bu geliştiriciler için bir cankurtaran botudur, anakaraya gelebilir ve lezzetli sıcak çikolatanın tadını çıkarabilirler. “API Fields projesi projesinin kanıtı olarak, eklenti, kullanıcının API alanlarıyla yapılan meta alan düzenleyicisinin bir editörünü içerir. Bu çok iyi bir gösteri, ancak tam yangın sahalarının özünde ne yapacağını ima ediyor. Scott, “Yangın tarlaları WordPress tarihinde önemli bir an olacak.” Dedi. “Bu yangın, WordPress’in nesnelerle (kullanıcılar, yayın türleri, taksonomi, yorumlar) ve alanlar (nesneler, özel alanlar, seçenekler) ile ilgili her parçasını birleştirme yeteneğine sahiptir – geliştiriciler her alan için çok az veya özelleştirmeden oluşturabilir. Kod, yeni bir yazı türü yaptıkları kadar kolay. ”
Bu büyük bir anlaşma. WordPress, bir uygulama çerçevesi olarak, yangın dinlenmesinden daha fazlasını gerektirir. Bu, tüm temel veri türlerini ve yukarıda yeni uygulamalar oluşturmak için standart yollarla eklenen sayısız eklentiyi bağlamanın bir yolunu gerektirir. Scott, API alanlarıyla “uygulamalar, eklentiler ve temaların birbirleriyle güvenli bir şekilde etkileşime girebileceğini ve aynı kullanıcı deneyimini koruyabileceğini de sözlerine ekledi. WordPress’in derinliklerine gömülü olan içeriğin yapısı, Calypso ve gelecekte WordPress gibi diğer çabalar gibi yeni projeler tarafından etkileşime girebilir ve kullanılabilir. Bunun için nasıl yönetici arayüzü yapacağımı göstermedim. Bunun yerine, yangın tarlalarıyla nasıl yapılacağını görmek için kendi formunuzu oluşturabileceğinizi veya bu hafta geri gelebileceğinizi söylüyorum. Yangın alanlarının ne kadar kolay olduğunu göstermek için iki taksonomi kaydetmek için basit bir eklenti yaptım. Birine “şehir” denir ve diğerine “devlet” denir. Meta teriminden önce, devlet taksonomisi terimiyle ilgili şehir taksonomisi terimini yapmak kolay olmayacaktır. Şimdi bu ilişkiyi meta terimlerle kurtarabiliriz.
Eklenti örneğimdeki kodların çoğu, burada görebileceğiniz iki taksonomi kaydedin. Şehir teriminin düzenleme ekranına Alanlar Ekleme ile Tüm Durum Terimleri yalnızca birkaç satır koddur. İçinden geçelim. Sözdizimi, Alanı ayarlamaların sözdiziminden sonra modellenen yangın alanlarıyla kaydetti ve bu nedenle WordPress geliştiricileri için aşina olmalıdır. Yaptığımız ilk şey “Fields_register” eylemine bağlanmaktır. Bu eylem, bize yönetici ekranına yeni parçalar ve alanlar ekleme olanağı sağlayan WP_FIELDS_API sınıfının nesnesini gösterir. Şöyle başlayan: add_action (‘fields_register’, ‘josh_city_term_fields’); Bir bölüm oluşturmak için wp_fields_api sınıfından add_section () yöntemini kullanırız. Bunu yaptığımız yol budur: /**
* @param wp_fields_api $ wp_fields
*/
josh_city_term_fields işlevi ($ wp_fields) {
// Ne tür bir WP nesnesi?
$ object_type = ‘terim’;
// Hangi taksonomi?
$ Nama_objek = ‘şehir’;
// form: hangi ekran eklenecek
$ form_id = ‘terim-edit’;
// Bir bölüm oluşturun
$ bölüm_id = ‘şehir-şehir’; //
$ bölüm_args = dizi (
‘başlık’ => __ (‘ülke’, ‘josh-tfx’),
‘form’ => $ form_id,
);
$ wp_fields-> add_section ($ object_type, $ bölüm_id, $ object_name, $ bölüm_args);
} Şimdi form bölümümüz var, alanı eklememiz gerekiyor. Bunun için add_field () yöntemini şöyle kullanabiliriz:
// alanı ekle
$ field_id = ‘durum’;
// Ayarlar
$ field_args = dizi (
‘Kontrol’ => dizi (
‘Type’ => ‘açılır terms’,
‘taksonomi’ => ‘durum’, ‘bölüm’ => $ bölüm_id,
‘etiket’ => __ (‘ülke’, ‘josh-tfx’),
‘Açıklama’ => __ (bu şehir hangi şehirde? ‘,’ Josh-tfx ‘),
),
);
$ wp_fields-> add_field ($ object_type, $ field_id, $ object_name, $ field_args); Aynı işlevde sakladığınızdan emin olun. Hepsi bu, insanlar. Depolama veya sanitasyonun işlenmesi yoktur – varsayılan, çoğu kullanım durumunda işlev görür. Formlar için işaretleme yapmaz. Hepsi bizim için bitti. İşte tüm işlevler birlikte: * @param wp_fields_api $ wp_fields
*/
josh_tfx_term_fields işlevi ($ wp_fields) {
// Ne tür bir WP nesnesi?
$ object_type = ‘terim’;
// Hangi taksonomi?
$ Nama_objek = ‘şehir’;
// form: hangi ekran eklenecek
$ form_id = ‘terim-edit’;
// Bir bölüm oluşturun
$ bölüm_id = ‘şehir-şehir’; //
$ bölüm_args = dizi (
‘başlık’ => __ (‘ülke’, ‘josh-tfx’),
‘form’ => $ form_id,
);
$ wp_fields-> add_section ($ object_type, $ bölüm_id, $ object_name, $ bölüm_args);
// alanı ekle
$ field_id = ‘durum’;
// Ayarlar
$ field_args = dizi (
‘Kontrol’ => dizi (
‘Type’ => ‘açılır terms’,
‘taksonomi’ => ‘devlet’,
‘bölüm’ => $ bölüm_id,
‘etiket’ => __ (‘ülke’, ‘josh-tfx’),
‘Açıklama’ => __ (bu şehir hangi şehirde? ‘,’ Josh-tfx ‘),
),
);
$ wp_fields-> add_field ($ object_type, $ field_id, $ object_name, $ field_args);
}