Group
4 dk okuma
Bir Group, birlikte duran birkaç alt alanı (bir adresin sokağı, şehri ve posta kodu) tutar ve bunları tek bir sütunda tek bir JSON nesnesi olarak saklar.
Tür kimliği |
|
Oluşturucu kategorisi | Layout |
Sütun |
|
Döndürür | alt alan anahtarlarıyla anahtarlanmış bir dizi, boşsa |
Çıktısı | kendi başına hiçbir şey yazdırmaz: alt alanı şununla yazdırın: |
Tür ayarları | yok; alt alanlar şununla eklenir: + Add sub-field |
Grup oluşturma
- Şu türde bir alan ekleyin: Group ve ona bir etiket ile anahtar verin.
- İçindeki + Add sub-field düğmesine tıklayın ve alanlar ekleyin. Her alt alanın, üst düzey bir alan gibi kendi türü, ayarları, varsayılanı, zorunlu ve doğrulama kuralları vardır (bkz. Her alanın sahip olduğu ayarlar).
- Alan grubunu kaydedin.
Alt alan anahtarları alan anahtarlarıyla aynı kurallara uyar (küçük harfler, rakamlar ve alt çizgiler; on, when veya order gibi SQL sözcükleri olmaz) ve grup içinde benzersiz olmalıdır.
İçine neler girebilir
İzin verilenler | İzin verilmeyenler |
|---|---|
Sağdakiler dışında tüm ücretsiz türler; Map, Link, Image, File, ilişkisel türler, Checkboxes, Accordion ve Tab dahil | Group ve Repeater (kapsayıcılar iç içe geçmez), Password (aşağıya bakın) ve Pro türleri (Gallery, Flexible content, Clone, Programmatic SEO page) |
İzin verilmeyen bir türü kaydetmeye çalışmak "Repeater fields cannot be used inside another field." gibi bir iletiyle başarısız olur. Grubun içinde bir listeye ihtiyacınız varsa üst düzeyde bir Repeater kullanın ve grubun alanlarını onun yanına koyun. Password neden dışlanıyor: bir grup tek blok olarak kaydedilir ve yeniden yazılmayan bir parola korunamazdı.
Düzenleme ekranı
Grup, etiketiyle çerçeveli bir kart olarak görünür (modern stilde Group rozetiyle birlikte). Alt alanlar içinde, normal alanlarla aynı sırada ve aynı genişlik ayarlarıyla oluşturulur. Boş bir tanım "No sub-fields defined." gösterir.
Zorunlu alt alanlar denetlenir. Biri boşsa bildirim onu Group label › Sub-field label olarak belirtir (örneğin Address › Street). Zorunlu bir Group'ta en az bir alt alan dolu olmalıdır.
Bir grubun içindeki koşullu mantık yalnızca kardeş alt alanları karşılaştırır (bkz. Her alanın sahip olduğu ayarlar).
Kaydedilenler
Her alt alan değeri kendi türü tarafından temizlenir; bu yüzden bir Number alt alanı sınırlar, bir Select alt alanı bilinmeyen değerleri reddeder ve bir Text alt alanı etiketleri kaldırır. Alt alan olmayan anahtarlar atılır. Hiç değeri olmayan bir grup boş kaydedilir.
Bir grubu kaydetmek tüm değerini değiştirir. Koddan yalnızca bazı alt alanları ayarlarsanız diğerleri kaldırılır:
wpmcf_update_field( 'venue', 'address', [ 'street' => 'Main St', 'city' => 'Ankara' ], $post_id );
wpmcf_update_field( 'venue', 'address', [ 'street' => 'Other' ], $post_id ); // "city" is goneKısmi güncelleme gerektiğinde okuyun, birleştirin ve geri yazın:
$address = (array) wpmcf_get_field( 'venue', 'address', $post_id );
$address['street'] = 'Other';
wpmcf_update_field( 'venue', 'address', $address, $post_id );Şablonda kullanım
$address = wpmcf_get_field( 'venue', 'address' );
// [
// 'street' => 'Main St',
// 'city' => 'Ankara',
// 'zip' => 6000,
// 'ok' => 1,
// 'kind' => 'h',
// ]Döndürülen dizi hakkında bilmeniz gerekenler:
- Anahtarlar alt alan anahtarlarıdır, sıra garanti edilmez. MySQL JSON anahtarlarını sıralayabilir. Asla konuma güvenmeyin.
- Alt değerler saklanan değerlerdir. Bir True / false alt alanı
1veya0olur (true/falsedeğil), sayılarintveyafloatolur, bir Link kendi dizisidir, bir Image ek kimliğidir. Hiç doldurulmamış bir alt alan eksik olabilir; bu yüzden$address['city'] ?? ''kullanın. - Doldurulmamış bir Select
nullve bir metin alt alanı""olarak görünebilir.
Bir alt alanı doğrudan path ile (veya tek bir anahtar alan sub_key ile) okuyun:
$city = wpmcf_get_field( 'venue', 'address', null, [ 'path' => 'city' ] ); // "Ankara"
$zip = wpmcf_get_field( 'venue', 'address', null, [ 'sub_key' => 'zip' ] ); // 6000Yazdırma
Bir Group kendi başına hiçbir şey yazdırmaz (wpmcf_the_field() ve shortcode boş dize döndürür). Bir alt alanı path ile yazdırın; alt alanın kendi türüne göre, kendi önek ve sonekiyle biçimlendirilir:
wpmcf_the_field( 'venue', 'address', null, [ 'path' => 'kind' ] ); // Home (a Select prints its label)
wpmcf_the_field( 'venue', 'address', null, [ 'path' => 'ok' ] ); // Yes[wpmcf_field group="venue" field="address" path="city"]
[wpmcf_field group="venue" field="address" path="link" wrap="false"]
→ <a href="https://x.org">X</a>Sarmalayıcı <span> ile önek ve sonek, Group'un değil alt alanın Display options ayarlarından gelir. Değeri olmayan bir alt alan hiçbir şey yazdırmaz.
Bir grubu sonradan değiştirme
Bir alt alanı yeniden adlandırmak veya türünü değiştirmek, güvenli olduğu yerde kayıtlı değerleri arka planda yeniden eşler; oluşturucu, onaylamadan önce ne olacağını açıklar. Bkz. Alan grupları.
Sınırlar
- Gruplar tek değer olarak saklanır: bir alt alana dizin ekleyemezsiniz. Yine de
group_key.field.sub_fieldgibi bir yollawpmcf_queryiçinde filtreleyebilirsiniz (bkz. Alan değerine göre yazı sorgulama), ancak bu koşul bir dizin kullanamaz. - Grubun tüm alt alanları birlikte gönderilir.
max_input_varssunucu sınırı (çoğunlukla 1000) geçerlidir; çok büyük gruplar ve repeater'lar bunu aşabilir. Sınır aşılacaksa düzenleme ekranı kaydetmeyi engeller; bkz. Repeater. - Bir Group, Programmatic SEO veri kaynağı sütunu olarak kullanılamaz.
Sorun giderme
- "Group fields cannot be used inside another field." Kapsayıcılar iç içe geçemez. Yapıyı düzleştirin veya iki üst düzey alan kullanın.
- Bir kod güncellemesinden sonra alt alan değerim kayboldu. Bir grubu güncellemek tüm değeri değiştirir; önce birleştirin.
wpmcf_the_field()grubumda hiçbir şey yazdırmıyor. Bir alt alanı yazdırmak içinpathkullanın.okdeğeri1'dir,truedeğil. Alt değerler saklanan değerlerdir;(bool)ile dönüştürün.
Hâlâ takıldınız mı? Destek ile iletişime geçin