Seçim alanları
4 dk okuma
Seçim alanları, editörün sabit bir listeden seçim yapmasını sağlar. Hepsi tek bir Choices editörünü ve aynı kuralı paylaşır: değer saklanır, etiket gösterilir.
Tür | Tür kimliği | Seçim | Sütun |
|
|---|---|---|---|---|
Select |
| Bir |
| saklanan değer (string) veya |
Radio buttons |
| Bir |
| saklanan değer (string) veya |
Button group |
| Bir |
| saklanan değer (string) veya |
Checkboxes |
| Birkaç |
| saklanan değerlerin dizisi veya |
True / false |
| Açık veya kapalı |
|
|
Select, Radio buttons, Checkboxes ve Button group için Type settings
Ayar | Varsayılan | Etki |
|---|---|---|
Choices | yok | Seçeneklerin listesi. Her seçeneğin bir Value (stored) ve bir Label değeri vardır. |
Output | Label | Çıktıda |
Layout (yalnızca Radio buttons ve Checkboxes) | Vertical | Vertical veya Horizontal liste, düzenleme ekranında. |
Allow no choice (yalnızca Button group) | Kapalı | Editörlerin değeri temizleyebilmesi için bir None düğmesi ekler. |
Choices editörü
- Her seçenek için + Add choice düğmesine tıklayın ya da Paste list seçip her satıra bir seçenek olacak şekilde
value : Labelbiçiminde (örneğinred : Red) girin, ardından Apply list düğmesine tıklayın. Edit as rows görünümü geri getirir. - Kısa ve kalıcı değerler (
red,in_stock) ve anlaşılır etiketler ("Red", "In stock") kullanın. Bir etiketi boş bırakırsanız etiket değerin kendisi olur. - Bir değer kırpılır, 191 karakterle sınırlanır ve benzersiz olmalıdır; boş veya yinelenen değerler atılır. Bir alan en fazla 500 seçeneğe sahip olabilir.
- Bir etiketi değiştirmek saklanan veriye asla dokunmaz. Bir değeri değiştirmek veya silmek kaydedilmiş yazıları güncellemez: eski değeri korurlar. Yine yazdırılır (hiçbir etiket eşleşmediği için ham değer olarak), ancak denetimde hiçbir şey seçili görünmez ve yazıyı kaydetmek onu temizler.
Select
Editör bir açılır liste görür. İlk seçenek — Select — (boş) olur ve zorunlu bir alana değer girildiğinde gizlenir. Listede olmayan bir değer reddedilir ve alan boş kaydedilir.
$color = wpmcf_get_field( 'product', 'color' ); // "blue" (the stored value, not "Blue")[wpmcf_field group="product" field="color"] → Blue (Output = Label)
[wpmcf_field group="product" field="color" wrap="false"] → BlueEğer Output değeri Value olarak ayarlanırsa aynı kısa kod blue yazdırır.
PHP'de etiketi almak için alanın seçeneklerinde arayın veya wpmcf_the_field() ile yazdırın:
wpmcf_the_field( 'product', 'color', null, [ 'wrap' => false ] ); // BlueRadio buttons
Select ile aynıdır, radyo düğmeleri listesi olarak gösterilir. Boş seçenek yoktur; bu yüzden bir seçim kaydedildiğinde editör tarayıcıda "hiçbir şey" durumuna dönemez (Button group'u Allow no choice ile veya Select'i kullanın). Layout düğmelerin üst üste mi yoksa yan yana mı dizileceğini belirler.
Button group
Bağlantılı düğmelerden oluşan bir sıraya benzer; Radio buttons gibi davranır. Allow no choice seçeneğini açarak değeri temizleyen bir None düğmesi ekleyin. None düğmesi zorunlu bir alanda gösterilmez.
Checkboxes
Birden çok seçenek işaretlenebilir. Değer, tek bir sütunda saklanan bir JSON listesidir.
$tags = wpmcf_get_field( 'product', 'features' );
// ["wifi", "usb_c"] (array of stored values, in the order they were submitted; the edit screen submits them in Choices order)
// null when nothing is ticked- Bilinmeyen değerler ve yinelenenler kaydederken atılır. Tüm kutular işaretsizken kaydetmek değeri temizler.
- Yazdırılan çıktı, virgülle birleştirilmiş etiketlerdir:
Wi-Fi, USB-C. - Bir dizi yerine
wpmcf_update_field()fonksiyonuna tek bir string iletmek hiçbir şey kaydetmez: alan temizlenir. Her zaman bir dizi iletin.
wpmcf_update_field( 'product', 'features', [ 'wifi', 'usb_c' ], $post_id );
foreach ( (array) wpmcf_get_field( 'product', 'features' ) as $value ) {
echo '<li>' . esc_html( $value ) . '</li>';
}Checkboxes dizinlenemez (sütun JSON'dur) ve Programatik SEO veri kaynağı sütunu olarak kullanılamaz.
True / false
Tek bir açık/kapalı anahtarı.
Ayar | Varsayılan | Etki |
|---|---|---|
Label when on | Yes | Düzenleme ekranında anahtarın yanında gösterilen ve değer açıkken yazdırılan metin. |
Label when off | No | Değer kapalıyken yazdırılır. |
Bir değer şöyle kaydedilir: 1, true, yes, y ve on (büyük/küçük harf fark etmez) on olur; 0, false, no, off, boş string veya maybe dahil diğer her şey off olur. null iletmek alanı temizler. İşaretlenmemiş bir anahtar her zaman "off" gönderir; bu yüzden işaretlenmemiş bir alan boş değil, 0 olarak saklanır.
| Anlamı |
|---|---|
| açık |
| kapalı |
| hiçbir değer kaydedilmedi |
if ( wpmcf_get_field( 'product', 'featured' ) ) {
echo '<span class="badge">Featured</span>';
}[wpmcf_field group="product" field="featured"] → Yes (or your "Label when on")Bilmeniz gerekenler:
wpmcf_has_field(),truedöndürür; off değeri için de, çünküfalsekaydedilmiş bir değerdir. Değerin kendisini şununla sınayın:if ( wpmcf_get_field(...) ).- Diğer çıktı biçimlerinde (
html,attr,url,js) true değer1yazdırır, false değer hiçbir şey yazdırmaz. - Bir Group veya Repeater içinde değer
1/0olarak saklanır ve boolean olarak değil,1veya0sayısı olarak döner. Esnek bir denetim kullanın (if ( $row['featured'] )). - Sütun türü
TINYINT(1); üzerinde filtreleme yapabilirsiniz (WHERE featured = 1).
Conditional logic
True / false en yaygın denetleyen alandır: bir alanı yalnızca bir anahtar açıkken göstermek için "equals 1" kullanın. Select, Radio buttons ve Button group saklanan değerlerini karşılaştırır; Checkboxes, işaretli değerlerden biri kuralın değerine eşit olduğunda eşleşir. Bkz. Her alanın ortak ayarları.
Türü sonradan değiştirme
Select, Radio buttons ve Button group, seçenekleri koruyarak veri yedeği gerekmeden birbirine dönüşür. Checkboxes (JSON) ve True / false daha az türe dönüşür; veri kaybolabileceği zaman oluşturucu sizden onay ister.
Sorun giderme
- Kısa kod etiket yerine bir değer yazdırıyor. Output değeri Value olarak ayarlı veya saklanan değer artık Choices listesinde yok.
- Bir seçenek düzenleme ekranında seçili görünmüyor. Saklanan değer artık listede yok (değer yeniden adlandırılmış). Bir seçeneği yeniden seçip kaydedin.
wpmcf_update_field()onay kutularımı temizledi. Bir string veya yalnızca bilinmeyen değerler ilettiniz. Geçerli saklanan değerlerin bir dizisini iletin.- True / false alanım "Yes" gösteriyor ama "Open" istiyorum. Şunu değiştirin: Label when on ve Label when off.
Hâlâ takıldınız mı? Destek ile iletişime geçin