Flexible content
5 dk okuma
Bir Flexible content alanı, her satırın tanımladığınız düzenlerden birini kullandığı bir satır listesidir. Repeater aynı alanları tekrarlar; Flexible content ise düzenleyicinin farklı türde satırları, örneğin bir "Hero" satırını (başlık), bir "Quote" satırını (alıntı ve yazar) ve bir "Gallery" satırını istediği sırayla karıştırmasına olanak tanır.
Tür kimliği |
|
Oluşturucu kategorisi | Layout |
Sütun |
|
Döndürür | satır listesi; her satır, bir |
Çıktı |
|
Gereksinim | Pro, Business veya Agency planı |
Alanı oluşturma
- Bir alan grubunu düzenleyin (bkz. Alan ekleme ve düzenleme) ve Flexible content türünde bir alan ekleyin.
- Şuna tıklayın: + Add sub-field ve tüm düzenler için gereken her alt alanı ekleyin. Alt alanlar, Repeater'daki gibi tek ve düz bir listedir ve aynı türleri alır (Group, Repeater, Password veya Pro türleri kullanılamaz; bkz. Repeater).
- Şu bölümde: Layouts, her satır türü için + Add layout düğmesine tıklayın ve düzen kartını doldurun (aşağıda).
- Her düzenin göstereceği alt alanları işaretleyin. Her alt alan tam olarak tek bir düzene aittir.
- Alan grubunu kaydedin.
Alt alan anahtarları olağan kurallara uyar (küçük harfler, rakamlar ve alt çizgiler; SQL sözcükleri kullanılamaz). Bazı sözcükler ayrılmıştır (örneğin inner ve rank); bir anahtara izin verilmediğinde oluşturucu sizi uyarır.
Düzen kartı
Ayar | Anlamı |
|---|---|
Label | Düzenleyicilerin ekleme menüsünde ve satır başlığında gördüğü ad. Boşsa kart "Layout 1", "Layout 2" vb. diye adlandırılır ve kaydederken etiket olarak düzen adı kullanılır. |
Name | Düzenin anahtarı; her satırda |
Minimum rows | Düzenleyicinin bu düzenden en az kaç satır tutması gerektiği. Maximum rows değerini aşamaz. |
Maximum rows | Bu düzenden en çok kaç satır bulunabileceği. |
Sub-fields in this layout | Bu düzenin gösterdiği alt alanları işaretleyin. Yardım metni: "Add sub-fields below, then tick the ones this layout shows." |
Her kartta onu yukarı veya aşağı taşıyan ("Move layout … up", "Move layout … down") ve kaldıran ("Remove layout …") düğmeler bulunur. Bir alanda en fazla 50 düzen olabilir. Hiçbir düzende olmayan alt alanlar listelenir: "Not in any layout yet: … Tick them in a layout."
Alan ayarları
Ayar | Varsayılan | Etki |
|---|---|---|
Minimum rows | 0 | Düzenleyici, satır sayısını bu sayının altına indiremez. Düzenleyici için satır eklenmez ve sunucu kaydederken bunu zorunlu kılmaz. Maximum rows değerini aşamaz. |
Maximum rows | 0 |
|
Button label | Add row | Düzen menüsünü açan düğmenin metni. Boş bırakılırsa "Add row" kullanılır. |
Alan grubunu kaydederken görünen mesajlar
Mesaj | Yapılacak işlem |
|---|---|
| Bir düzen ekleyin. |
| Düzeni yeniden adlandırın. |
| Düzenlere farklı adlar verin. |
| Biri dışındaki tüm düzenlerde işaretini kaldırın. |
| Bir düzende işaretleyin veya silin. |
Düzenleme ekranı
- Ekle düğmesi (varsayılan Add row), her düzen için bir giriş içeren bir menü açar. Klavyeyle kullanmak için ok tuşlarını, Enter'ı ve Escape'i kullanın. Düzeni üst sınırına ulaşmışsa ilgili giriş devre dışıdır; alan Maximum rows değerine ulaşmışsa düğmenin kendisi devre dışıdır.
- Yeni satır, odak ilk girdisinde olacak şekilde açılır.
- Her satırın, düzen etiketini taşıyan bir başlığı (satırı daraltmak veya genişletmek için tıklayın) ve Move row up, Move row down ve Remove row düğmeleri vardır. Kaldırırken "Remove this row?" diye sorulur.
- Remove row düğmesi, alan veya satırın düzeni en az satır sayısındaysa devre dışıdır.
- Sürükle ve bırak yoktur. Zorunlu bir girdi daraltılmış bir satırdaysa, tarayıcı sorunu bildirdiğinde satır açılır.
- Alt alanı olmayan bir düzen "This layout has no fields." mesajını gösterir.
Nelerin kaydedildiği
- Satırlar gösterilen sırayı korur.
- Düzeni (artık) var olmayan bir satır atılır.
- Düzeni zaten Maximum rows değerine ulaşmış bir düzenin fazla satırı atılır (ilk satırlar korunur).
- Kaydetme, alanın Maximum rows değerinde durur.
- Yalnızca satırın düzenine ait alt alanlar korunur; başka bir düzenin alt alanı için gelen değer yok sayılır.
- Her alt alan kendi türüne göre temizlenir.
- Repeater'dan farklı olarak, tüm alt alanları boş olan bir satır korunur, çünkü içerik o satırın düzenidir.
- Satır yoksa alan temizlenir.
Örnek saklanan değer (bir satırdaki anahtarların sırası garanti edilmez, çünkü veritabanı JSON nesnelerini kendi anahtar sırasıyla saklar; buna güvenmeyin):
[
{ "_layout": "hero", "title": "Welcome" },
{ "_layout": "quote", "quote_text": "To be", "author": "Ann" }
]Koddan aynı yapıyı iletin. Bilinmeyen düzenler atılır:
wpmcf_update_field( 'page_blocks', 'blocks', [
[ '_layout' => 'hero', 'title' => 'Welcome' ],
[ '_layout' => 'quote', 'quote_text' => 'To be', 'author' => 'Ann' ],
], $post_id );Düzenleri sonradan değiştirme
- Bir düzeni yeniden adlandırmak, yeni ad aynı konumu alıyorsa ve düzen etiketini veya alt alanlarından en az birini koruyorsa satırlarını korur. Saklanan satırlar yeni adla yeniden yazılır.
- Bir alt alanı yeniden adlandırmak, Repeater'daki gibi değerlerini korur.
- Bir düzeni kaldırmak, satırlarını veritabanında bırakır; ancak bunlar düzenleme ekranında artık görünmez ve yazı bir sonraki kaydedildiğinde saklanan değerden çıkarılır. Yazdırılmazlar.
Şablonda kullanım
$rows = wpmcf_get_field( 'page_blocks', 'blocks' );
foreach ( (array) $rows as $row ) {
switch ( $row['_layout'] ) {
case 'hero':
printf( '<h1>%s</h1>', esc_html( $row['title'] ?? '' ) );
break;
case 'quote':
printf( '<blockquote>%s</blockquote>', esc_html( $row['quote_text'] ?? '' ) );
break;
}
}Bir yol (path) satırın içine işaret eder: wpmcf_get_field( 'page_blocks', 'blocks', null, [ 'path' => '0.title' ] ) ilk satırın başlığını döndürür.
Yazdırılan çıktı
wpmcf_the_field() ve [wpmcf_field], her satırı düzeninin alt alanlarıyla yazdırır; her alt alan kendi türüne göre biçimlendirilir. Boş alt değerler dışarıda bırakılır ve bilinmeyen düzenlerin satırları atlanır:
<div class="wpmcf-flexible">
<div class="wpmcf-flexible__row" data-layout="hero">
<div class="wpmcf-flexible__value" data-field="title">Welcome</div>
</div>
<div class="wpmcf-flexible__row" data-layout="quote">
<div class="wpmcf-flexible__value" data-field="quote_text">To be</div>
<div class="wpmcf-flexible__value" data-field="author">Ann</div>
</div>
</div>Tek bir satıra işaret eden bir path (örneğin 0) yalnızca o satırı yazdırır. wpmcf/field/flexible_content_html filtresi işaretlemeyi, satırları ve alanı alır ve tüm çıktıyı değiştirebilir.
Nerede çalışır
- Group veya Repeater içinde çalışmaz, ön yüz formlarında da kullanılamaz (ekleme menüsü, düzenleme ekranı betiğini gerektirir).
- Programmatic SEO veri kaynağı sütunu olamaz (bir JSON sütunudur).
- Yönetim listesi sütunu: kısaltılmış bir metin satırı olarak gösterilir; sıralanamaz, filtresi ve hızlı düzenlemesi yoktur. Bkz. Yönetim sütunları.
- Sayfa oluşturucular: Elementor Repeater widget'ı, Flexible content alanlarının satırlarını listeler ve yalnızca her satırın düzenine ait alt alanları gösterir. Bkz. Repeater, galeri ve diğer widget'lar. Dinamik etiketler bir alt alanı
group.blocks.0.titlegibi bir yolla okuyabilir. - Elementor görüntüleme koşullarında, en az bir dolu satırı olan Flexible content alanı değeri var sayılır; bkz. Elementor görüntüleme koşulları.
Lisans olmadan
Mevcut satırlar yazdırılmaya devam eder. Düzenleme ekranı alanı kilitli gösterir ve değeri korur. Bkz. Lisansın sona ermesi.
Sorun giderme
- Bir düzeni kaldırdıktan sonra satırlarım kayboldu. Kaldırılan bir düzenin satırları artık gösterilmez ve bir sonraki kaydetmede atılır. Onları korumak için kaydetmeden önce aynı adla bir düzen yeniden oluşturun.
- Bir alt alanın değeri kaydedilmedi. Alt alan satırdan farklı bir düzene ait veya hiçbir düzende yok.
- Bir satırı kaldıramıyorum. Alan veya düzen en az satır sayısında.
- Bir satırdaki anahtar sırası tanımımdan farklı. Veritabanı JSON nesne anahtarlarını kendi sırasıyla döndürür; değerleri anahtarla okuyun.
Hâlâ takıldınız mı? Destek ile iletişime geçin