Gutenberg ile WordPress’in gelişiminin geleceği nedir
WordCamp Us’ta bu yıl, Gutenberg tarafından WordPress için sunulan olanaklardan çok memnunum. Eve gittim ve blok yapmaya başladım. Birkaç özel blok eklentisi oluşturduktan sonra daha da heyecanlandım. Bu bir öğretici değil, Gutenberg sürüm 1.9.1’de gelecekteki WordPress’i geliştirmenin nasıl hissettirdiğine dair bir yansıma. Evet, Gutenberg ilk “Beta” olarak serbest bırakıldığında şüpheliydim. Bence beta demek bir hatadır çünkü altı ay önce yapmamız gereken şey eksik özelliklerdir. Sürüm 1.9 da eksik özelliklerdir, ancak oraya geldi.
Daha da önemlisi, nedeni açıktır ve sonuçlar ortaya çıkmaya başlar. Geçmişte, WordPress yerine Google belgelerine yazmayı tercih ederim. Bu, Google belgeleri hakkında ilk kez bir tork makalesi derledim ve WordPress’e yazdığımı umuyordum, ancak Gutenberg ile. PHP’m nereye gitti? ES6’ya JavaScript yazmayı sevdiğim kadar sır olarak, ön uç kodu yazmak yerine PHP’de arka uç kodu yazmayı tercih ettiğim bir sır olarak tutmadım. Ancak, JavaScript ön uç çerçevesini incelemek, ön ucun gelişiminden keyif almamı sağladı. Ancak, PHP’yi gerçekten seviyorum.
Başlangıçtan itibaren, piyasaya sürdüğüm ilk tam blok eklentisinin neredeyse bir PHP kodu yoktu. PHP sadece JavaScript, CSS ve kayıt bloklarını yüklemek için oradadır. Tüm işlevleri özetlemek için yeniden kullanılabilecek bir işlev yazacağımdan şüpheleniyorum. Gutenberg tarafından yapılan ve olduğu gibi yayınlanan statik bir blok – HTML işaretlemesi gibi birkaç bloğu hatırlayın. Başka bir blok, PHP kullanarak HTML işaretlemesi oluşturmanıza olanak tanıyan sunucu tarafı oluşturmayı kullanır. Blok eklentisi türü daha fazla PHP’ye güvenecektir. Ayrıca, özel bir yangın uç noktası gerektiren bir eklentinin yanı sıra, WordPress eklentisini temelde JavaScript ve CSS için düzenleme dışında PHP yok. Arka uç WordPress hala bir PHP uygulamasıdır, ancak Gutenberg ile, ön uç ve arka uç arasındaki bölünme artık dile göre daha açık bir şekilde bölünürken, WordPress ile ön ucun geliştirilmesinden önce JavaScript olarak PHP hakkında. Bence bu, bir ekosistem olarak web’deki değişiklikleri takip etmek için bizim için önemli bir adım olacak. En özel olarak bir -sayfa web uygulamasına, özellikle de ilerici web uygulamaları olarak uygulananlara taşındı.
Umarım WordPress API REST ve pratiğe ve PHP tasarım ilkeleri hakkında çok şey yazdığım endişemi ayırmışsınızdır. Vurguladığım bir şey, WordPress Rest API ve WP CLI’nin WordPress’in gelişimini nasıl değiştirdiğini, kodu HTTP-end isteklerinden, yönetici ekranından, admin-ajax vb. – Modern WordPress siteleri, uygulamalar ve eklentiler gibi çok önemlidir, aynı özellikleri CLI, dinlenme talepleri ve farklı UI’ler aracılığıyla sağlayabilmelidir. Öneri, tasarımın yerinde önizlemeye dayandığı editör için daha da önemlidir. Aynı şey için tamamen farklı iki arayüz – önizleme ve gerçek – korumak istemediğiniz sürece, arayüzünüzün ayrılması gerekir. Oldukça sorunsuz bir deneyim bloğu fikrine dayalı yeni bir eklenti yapmayı bulurken, Caldera Formları için Blok – Önce tam blok, ama aynı zamanda ilk deneyimim eski kod tabanına bir blok ekledi – bazı sorunlarım var. Ve elbette, sorun, kolay olduğu bir örnek olarak tekrar kullandığım arayüzden mükemmel bir ayrıştırmaya sahip olmadığım yerde ortaya çıkıyor, sunucu tarafının işin ön ucu için formu nasıl oluşturduğunu görün: caldera_forms_very_safe_string ($ atts [‘formid’]))
)
);
}
} Formu oluşturmak için zaten basit bir işlevim var. Sunucu tarafı oluşturmayı bloktan eklemek kolaydır ve aynı oluşturma işlevini çağırmak için kendi aracısı olan kısa koduma müdahale etmez.
Öte yandan, bloktaki formdan biraz daha zor bir inceleme alın. HTML’yi o yerde almak kolaydır, ancak eklenti başlıklara ve altbilgilere yüklü CSS ve JavaScript’i varsayar. WP_head ve WP_Footer’ın eylemini çağırma teması oldu. Bu burada olmadı, bu yüzden DOM’a ek kaynak eklemek için mini bir JavaScript istemcisi yazmak zorunda kaldım. Bu daha fazla iş, ama şimdi bende var, iyi. Gutenberg’in çok fazla ağır iş için React kullanmasına rağmen tepki vermeyi öğrenmeniz gerekmez, bir blok geliştirirseniz, React kullanmanız gerekmediğini belirtmek önemlidir. Şu anda API React üzerine inşa edilmiş bazı yeni WordPress API’leri vardır. Örneğin, wp.Element.CreateElement React.component’den bir soyutlamadır. Ancak bu yangını bir WordPress ateşi olarak düşünmek önemlidir, çünkü React her zaman bir çadırın altında kullanılmayabilir, ancak bu WordPress olduğu için, genel arayüzün değişmeyeceğini varsayabiliriz. Ayrıca, başka bir çerçeve kullanarak bir blok yazabilirsiniz. İşte Vuejs kullanarak yaptığım bir blok örneği. Hiç bir çerçeve veya esnext kullanmanıza bile gerek yok. Bu yaptığım olağan JavaScript bloğu. JavaScript’imin tema geliştiricisi değil, bir eklenti geliştiricisi olduğunu bilmeniz gerekmeyebilir. Ancak, hangi temanın yapılacağı için çok heyecanlıyım. Artık Core WordPress blok olarak daha fazla varsayılan arayüzler sunuyor, tema geliştiricileri gerçekten sunumlar ve bloktan benzersiz koleksiyonlar tasarlamaya odaklanabilir.
Bir tasarımcıysanız, CSS’de bir uzman veya her ikisi de, tema çok eğlenceli olacak ve ihtiyacınız olan şey sadece iyi bir tasarım ve iyi bir CSS becerisidir. Önümüzdeki birkaç yıl boyunca WordPress temalarının kalitesini artıracağından şüpheleniyorum çünkü tema geliştiricileri tasarıma odaklanabilir ve işlevselliğe daha az zaman harcayabilir. Tamam, ama tepki inanılmaz, reaksiyonu ve hatta esnext’i öğrenmenize gerek yok. Bu, umarım JavaScript’inizi talimat verildiği gibi derinlemesine incelemişsinizdir. Gutenberg için WordPress’in gelişiminden gerçekten keyif alacağınızı düşündüyseniz, hala Vuejs’in büyük bir hayranıyım, ancak Gutenberg’i reaksiyon anlayışımı artırmak için nedenim olarak kullanıyorum ve yaptığım için mutluyum. Basit bir blok oluştururken, ES5’i kullanmanın iyi olduğunu düşünüyorum, ancak React veya Vue’nun büyük avantajlarından biri bileşenlerin modülerliğidir. Bu noktada, ayrı bir dosyaya bölmek önemlidir. Yaptığım sosyal blok eklentisinde, önizleme ve ön uç oluşturmak için kullanılan bir reaksiyon bileşenim var. Hepsi bloğun kendisinde ise, o zaman ikinci bir bileşen yapmalıyım ve her ikisini de manuel olarak senkronize etmeliyim.
React bileşenini Gutenberg’e bırakmak şu anda çok basit. React ile geliştirdiyseniz, bu sizin için kolay bir geçiş olacaktır. En önemli şeylerden bazıları bunu serbest bırakmadan birkaç ay yazmam için hazır değil. Çok güçlü bloklar yapabilirim. Bazı şeyler planlanıyor ama henüz orada değil. Zaten, Gutenberg için geliştirilmek çok eğlenceli, bu daha önce WordPress’in gelişimi hakkında söylediğim bir şey değil. Ancak, geliştiricinin karşılaştığı tüm özellikler tamamlanmış olmasa bile, bu zaten geliştiricinin deneyiminde büyük bir artış. Örneğin, eklenti geliştiricilerin henüz Gutenberg durum nesnelerine erişmek için iyi bir yolu yoktur. Bu artış planlanıyor ve bazı olağanüstü olasılıklar açacak. Örneğin, mevcut gönderme içeriğini veya taksonominin başlığını veya terimini almanın ve gerçek zamanlı değişikliklere tepki vermenin basit bir yoluna sahip olduğumuzda, daha etkileşimli ve dinamik bir blok oluşturabilir veya gerçeklere göre içeriği artırmaya yardımcı olabiliriz. zaman. Zaman analizi. WordPress için çok endişelendiğim için mutluyum. REST API ve WP CLI, geliştirici deneyimi açısından büyük gelişmelerdir, ancak daha fazla modernizasyon yapılması gerekmektedir. Bu modernizasyonu ilerletmek için Post Düzenleyiciye geçmek çok makul. Gutenberg, geliştiricinin deneyimini ve son kullanıcının aynı anda geliştirilmesi için bir fırsattır. Gutenberg post editörde başlar, ancak bu arayüzün daha fazla WordPress’i devralabileceği şekilde yazılıyor.