Gelişmiş Özel Alan: Özel ve ACF Blok Alanına Kılavuz

Uzun zamandır gelişmiş özel alanların (ACF) hayranı oldum. Bu, son birkaç yıldır yaptığım veya üzerinde çalıştığım hemen hemen her sitede kullanılır. Farkında olmayanlar için ACF, içeriğiniz üzerinde daha fazla kontrol sağlayan bir eklentidir. İçeriğinizi yapılandırılmış verilerle zenginleştirmek için özel bir gönderi gönderisi kullanır. Bu aynı zamanda yayınları, sayfaları, özel yayın türlerini ve daha fazlasını güncellediğinizde Meta kutusundaki veri alanını oluşturmanıza ve yapılandırmanıza olanak tanır. Geçmişte, Delicious Brains web sitesinde projenin bir parçası olarak eklentileri kullandım. Ancak, bu blogu yayınlamak bana üçüncü taraf çözümlerinin WordPress’i geliştirmek için ne kadar önemli olduğunu gösterdi. Açıklamama izin ver …
ACF’nin ACF’nin ne yaptığını anlamam için birkaç dakika boyunca nasıl çalıştığı, bu yüzden bu kısa bir örnek. Kullanıcıların bir tür özel gönderi olarak rehoming’e yeni köpekler ekledikleri bir köpek kurtarma sadaka sitesinde kullandım. Bununla birlikte, köpek adı, açıklama, yazı başlığı ve içerik ile birlikte, köpeklerin türünü ve cinsiyetini, videolara bağlantıları ve bazı fotoğrafları da saklamak istiyorlar. Bunu yapmak için, özel alan> alan grubundan bu veriler için bir alan grubu oluşturdum> yeni bir menü ekleyin:

Çeşitli tiplerde alanlar ekleyebilirsiniz. Burada Select, Metin Kutusu, Basit Boolean onay kutusu ve Galeri Alanı kullandım. Sonuncusu ACF Pro seçeneği ve bunu daha sonra tekrar tartışacağım.
Kullanıcı seçeneğiyle tamamlanan Seç kutusunu yapılandırma şekliniz budur:

Ayrıca, bu grubun sadece özel köpek türü için düzenleme ekranında görüneceğini söyledim. Burada kullanabileceğiniz çeşitli mantık türleri vardır, örneğin yayın türü, şablon, kategori ve kullanıcı rolü: ancak ACF’nin gerçek gücü veri eklediğinizde. Köpek yayınları üzerinde çalışırken ACF alanı düzenleme ekranına farklı görünür. Bu, belirtilen alanlarla tamamlanmış özel bir meta kutuyu gösterir:

Bu, içerik editörleri için tüm ekstra verilerin eklenmesini kolaylaştırır. Bu aynı zamanda Get_field Fonksiyon kodunu kullanarak temada verilerin oluşturulmasını istediğiniz tam olarak belirlemenizi sağlar:

<a href=" “>

Bir eklenti olmadan, varsayılan WordPress özel meta kutusunu kullanmam, başlangıçtan daha zengin olan kendi meta kutu kodumu yapmam veya türü seçmem gerekiyor ve özel taksonomide köpeğin cinsiyeti. Gönderi içeriğine gömülü orijinal galeriyi bile kullanmam gerekebilir. titreme.
ACF, WordPress ACF’yi, içeriğiniz üzerinde daha fazla kontrole sahip olması açısından bir İçerik Yönetim Sistemi (CMS) olarak tam olarak hangi WordPress’in kaybolduğunu kaldırır. Bir milyondan fazla aktif kurulumla, bu WordPress platformunu daha güçlü hale getirmeye yardımcı oldu ve hatta büyümesine katkıda bulunabilir. Dahası, geliştiriciler ve ajanslar bunu kısa kodlar, sayfa yapımcıları ve hatta Post_Content gerekmeden müşterilere içerikleri üzerinde kontrol etmek için kullandılar. Geliştirici, sitenin ön ucunda görünmek için verilerin yeri üzerinde tam kontrole sahiptir ve görsellere zarar veren kaçınılmaz düzenlemeden kaçınır. Şimdi, görüntüler ve kesimler Amazon S3’e, DigitalOcean boşluklarına veya Google Cloud depolama alanına aktarılan medya ile işlev görüyor. Bu eklentinin ACF ücretsiz sürümüne ekstra alan seçeneği eklemek birçok işlevi vardır. Bununla birlikte, premium sürüm, tekrarlayıcı, esnek düzen ve galeri gibi alanlara erişmek için çok önemlidir. Örneğin, kullanıcıların ürün sayfasındaki kaymada seçilen referansları görüntülemelerini sağlamak için tekrarlama alanını kullanırız. Tekrarlayıcı, iç içe bir posta nesne alanı içerir:
Sonra sayfayı düzenlerken görünür, böylece hangi referansların görüntüleneceğini kontrol edebiliriz:
Kod tabanının etrafında terbiye edilen eylemler ve filtrelerle ACF, her zaman çok samimi ve genişletilmiş bir araç olmuştur. Ayrıca kullanıcıları için önemli bir gelişmeye öncelik verir. Bununla birlikte, yerel JSON özelliğini kullanarak, geçmişte bulduğum birkaç sorundan biri, özellikle alanlar ve alanlar için alanlar için alan konfigürasyonlarını veritabanında saklamaktı. Bu, geliştirme sitesindeki alanın tanımını değiştirirseniz, WP Migrat DB Pro gibi çözümleri kullanarak veritabanınızı yeniden etkinleştiremeyeceğiniz anlamına gelir. Post tablosunun değişeceğini ve yeni verileri kaybedeceğinizi göreceksiniz. Bu, antik veritabanlarını birleştirme sorunudur (başlamayın …). Önce sitedeki alanda değişiklik yaparak bunun üstesinden gelirdim. Ardından, geliştirmeye devam etmek için veritabanını yerel siteme çekeceğim. Uygun değil. Neyse ki, ACF yerel JSON özelliğini tanıttı. Yapılan şey, alan yapılandırmasının bir veritabanı ile senkronize edilebilen bir JSON dosyası olarak saklanmasına izin vermektir. Bu olağanüstü özellik, ACF verileri için veritabanlarını birleştirme sorununu çözer. Bu aynı zamanda JSON dosyalarını kontrol sürümü altına kaydedebileceğiniz ve normal dosyaları uygulama sürecinin bir parçası olarak yapılandırma yapabileceğiniz anlamına gelir. Sitemizdeki eklentilerle çalışırken, GIT ve çok çevresel ayarlarımızla daha fazla entegre etmek için bazı ayarlamalar ekledim:

JSON dizinini temanın dışındaki uygulamaya/veri dizinimize tanımlıyorum (çünkü değişebilir).

“Özel Alan” menü öğesi yalnızca geliştirme ortamında görüntülenir.
Admin_init’te süresi dolmuş bir veritabanı yapılandırmasına sahip JSON dosyası otomatik olarak senkronize edilecektir. Şimdi bir WordPress blok düzenleyicimiz olmasına rağmen (daha önce Gutenberg olarak bilinir), ACF’nin harika bir düzenleme deneyimi oluşturmak için hala önemli olduğu görüşündeyim. ACF Editor Block ile bir blok düzenleyici kullanmak, ACF’den içeriği düzenlemek için farklı talimatlar sunar. Meta post verileri olarak saklamak yerine blokları kullanarak içerik oluşturursunuz, bu da size bazı tasarım esnekliği sağlar.
Başlangıçta, blok düzenleyici meta kutusunu desteklemedi. Hatta “Post’u Düzenle” ekranından bile silindi ve çok fazla öfkeyi tetikledi. Şimdi, meta kutusuna destek eklendi. Blok düzenleyicinin altında minimum ve daha az pürüzsüz kullanıcı arayüzü (UI) ile görünürler.
Özel veriler için alanlar yerine bloklar kullanan yeni editörler, gelecekteki ACF üzerinde büyük bir etkiye sahip olma potansiyeline sahiptir. Dahası, yeni sitenin üçüncü taraf bir aracı kurma olasılığı daha düşük olacak, şimdi orijinal bir çözüm var. Ancak, önerilen çekirdek değişikliğin ACF’nin geleceğini ilk kez tehdit etmemesi bu değildir. Birkaç yıl önce Post Meta için yeni bir ekip kuruldu. Başlangıçta, bu üçüncü taraf özel alanlarına çeşitli çözümler öldürecek gibi geliyordu:
Şimdilik bu rolü dolduran birçok kütüphane/çerçeve/eklenti (CMB, SCB, WPalchemy, ACF, Pods) vardır. Bunu çekirdeğe layık yeni bir eklenti için manevi bir prequel olarak göreceğiz. O zaman, bu yeni rakip özelliğinin tanıtım kararının bazı eklentilerin nasıl savurgan hale gelebileceğini yazdım. Sonunda Meta Post projesi başarısız oldu, yeni editör geldi ve ACF fırtınayı geçti. ACF sadece tekrar yükselmez, aynı zamanda uyum sağlarlar. Sonuç, ACF’nin gücünü ve özel blok esnekliğini birleştiren bir şeydir. Bundan sonra konuşalım. Bir blok nasıl oluşturulur Net bir ACF kullanarak özel bloklar yararlı olabilir. Ancak, onu karmaşık hale getirmek için teknik süreç. ACF bloğu boşluğu doldurur. ACF bloğu şu anda özel alanınızla entegre edilmiştir, dinamik ve ayarlanmıştır ve iki şeye ulaşmanıza olanak tanır: Özel alanlarınızı şu anda Block Düzenleme Ekosistemine getirebilirsiniz.
Satır içi özel bir çözüm oluşturabilirsiniz.
Bir PHP şablon dosyası veya geri arama işlevi kullanılarak oluşturulurlar – bu bir tema geliştirmek gibidir. Ayrıca WordPress çekirdeğinin uyumluluğunu korurlar, böylece bir çerçeve ile yeniden kullanılabilecek bir blok bile yapabilirsiniz.

ACF bloğu bir sütun olmasa da, reaksiyon becerileriniz hala belirsizse, kesinlikle daha fazla araştırmak isteyeceğinizi söyleyeceğim. Zaten bilinen Fonksiyon.php dosyasında kalırken blok düzenleyicinin gücünden yararlanmanıza izin vereceklerdir. ACF bloğu oluşturma ACF bloklarının nasıl oluşturulacağını gösterelim. Bu aracın profesyonel sürümü ACF 5.8’den bu işlevi içeriyordu, bu yüzden yaklaşık iki yıldır bizimle birlikte. Aşağıda süper basit blok kayıt koduna bir örnek: add_action (‘acf/init’, ‘my_acf_init’); İşlev my_acf_init () {// kontrol işlevi varsa (function_exist (‘acf_register_block_type’))) {// bir referans bloğu kaydetme acf_register_block_type (‘name’ => ‘Testimonial’, ‘başlık’, ‘açıklama’ => __ (‘özel bir referans bloğu.’), ‘render_template’ => ‘şablon-parçalar/bloklar/referanslar/referanslar.php’, ‘render_callback’ => ‘my_acf_bock_render_callback’ ‘biçimlendirme’, ‘simge’ => ‘yönetici-remin ‘,’ Anahtar kelimeler ‘=> dizi (‘ referans ‘,’ alıntı ‘),); }} Buradan bir alan grubu oluşturmak ve bloğu oluşturmak istersiniz. Birincisi, bunu WordPress’teki Özel Alanlar Ekran> Alan Gruplarının içinden yapacaksınız: Burada, saha grubunuzu ekleyin ve her zamanki gibi doldurun. Ancak, “Konum” meta kutusunda, (bu durumda) Blok Tanıklığı’nı seçmek için “blok” kurallarını kullanmak isteyeceksiniz.
Son olarak, bloğu oluşturmalısınız. Bu, özel alanlarla kullanmış olabileceğiniz işlemi izler:
Rendering_template ayarlarında verilen parametrelere dayanarak temanız için bir şablon dosyası oluşturun. Bloğu ilk kaydettiğinizde. Bloğu oluşturmak için doğru yöntemi seçin.
Tarzınızın ve senaryonunuzun enqueue.
ACF_REGISTER_BLOCK_TYPE () işlevinin enqueue_style, enqueue_script ve enqueue_assests sunduğunu unutmayın.

Genel olarak, blok ihtiyaç duydukları her özel alan meta kutusunu değiştirmemeli, ancak içeriği düzenleyiciyi kullanmanıza izin verecektir. Destek ‘InnerBlocks’ Block Düzenleyicisi ayrıca ACF bloğuyla çalışmanıza yardımcı olan bir işlev vardır. InnerBlocks temel olarak ACF bloğunuza yeni bir blok eklemenizi sağlar. Özel bir blok veya çekirdek olabilirler ve şu anda kendi ACF bloğunuzda “başlık”, “içerik” ve “düğme” alanlarını kullanabilirsiniz. İşte uyanmak ve yürümek için hızlı bir öğretici. InnerBlocks’u kullanmaya başlamak için ‘jsx’ => dizide ‘JSX’ => true’yi girersiniz: acf_register_block_type (‘name’ => ” referans ‘,’ başlık ‘=> __ (‘ referans ‘),’ render_template ‘=>’ tapplate – Parçalar/bloklar/referanslar/TestImonials.php ‘,’ modu ‘=>’ önizleme ‘,’ destek ‘=> [‘ hizalama ‘=> false,’ çapa ‘=> true,’ customclassName ‘=> true,’ jsx ‘=> true,])); Daha sonra blok şablonunuzda html tag yankılamanız gerekir: echo ‘
‘; echo ”; Bu sadece basit bir örnektir, ancak InnerBlock’larla yapabileceğiniz çok daha fazlası var. ACF bloğu için alternatifler, elbette, bir blok yapmak için tek çözüm ACF olmayacaktır. Dolayısıyla, ilk içgüdünüzün özel bir yapı olması muhtemeldir. ‘Vanilya’ bloğunun nasıl yapılacağını tartıştık

admin

Bir Cevap Yazın

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