Çıktı, biçimler ve escape etme
5 dk okuma
Bir alanı okumanın iki yolu vardır ve bilerek farklı davranırlar.
|
| |
|---|---|---|
Döndürür veya yazdırır | Ham PHP değerini döndürür | Biçimlendirilmiş, escape edilmiş bir dize yazdırır |
Escape edilir mi | Hayır. Yazdıracağınız yere göre kendiniz escape edersiniz. | Evet, alan türü tarafından |
Sarmalayıcı öğe | yok |
|
Boş alanın değeri |
| hiçbir şey yazdırmaz |
İşlevlerin tam başvurusu Geliştirici API'si bölümündedir. Bu sayfa her türün size ne verdiğini listeler.
Okumanın üç yolu
// 1. Raw value (you escape):
$price = wpmcf_get_field( 'product', 'price' );
echo esc_html( $price );
// 2. Printed and escaped by the field type:
wpmcf_the_field( 'product', 'price' );
// 3. Shortcode, in content or a widget:
echo do_shortcode( '[wpmcf_field group="product" field="price"]' );
// Is there a value? (0, "0" and false count as values; null, "" and [] do not)
if ( wpmcf_has_field( 'product', 'price' ) ) { /* … */ }Hangi nesne okunur?
Üçüncü bağımsız değişken nesneyi belirtir: null (geçerli yazı), bir yazı kimliği, bir WP_Post, WP_User, WP_Term veya WP_Comment ya da bir referans dizesi.
wpmcf_get_field( 'g', 'f' ); // current post
wpmcf_get_field( 'g', 'f', 42 ); // post 42
wpmcf_get_field( 'g', 'f', 'user_3' ); // user 3
wpmcf_get_field( 'g', 'f', 'term_5' ); // term 5 (also "category_5")
wpmcf_get_field( 'g', 'f', 'comment_7' ); // comment 7
wpmcf_get_field( 'g', 'f', 'option' ); // options page value
wpmcf_get_field( 'g', 'f', 42, [ 'context' => 'post' ] );Bağımsız değişkenler (dördüncü bağımsız değişken ve kısa kod öznitelikleri)
Bağımsız değişken | Kullanan | Etki |
|---|---|---|
| tümü |
|
| tümü | Group, Repeater, Map veya Link değerinin içine noktalı yol: |
| tümü | Tek bir anahtar; tek bölümlü |
| tümü | Değer boş olduğunda döndürülür (veya yazdırılır). |
| the_field, kısa kod |
|
| the_field, kısa kod |
|
| kısa kod | Nesne kimliği. Belirtilmezse geçerli yazı kullanılır. |
| widget bağlamı | Bir widget'ın değerlerini seçer. |
Bulunamayan bir alan ya da var olmayan bir nesne default değerini (veya null) döndürür ve hiçbir şey yazdırmaz. Nesnenin kendisi yoksa default değeri yazdırılmaz.
Kısa kod ve görünürlük
Kısa kod yalnızca ziyaretçinin zaten görebileceği değerleri yazdırır. id="…" ile, ziyaretçinin görüntüleyemediği bir yazı (taslak, özel, parola korumalı) için ya da kullanıcının kendisi, geçerli yazının yazarı veya kullanıcıları listeleyebilen biri olmadığı sürece bir kullanıcı için hiçbir şey yazdırmaz. Tema kodundaki wpmcf_get_field() ve wpmcf_the_field() güvenilirdir ve kısıtlanmaz. wpmcf/shortcode/can_view filtresi bunu değiştirir.
Her tür için format="auto" ne yapar
Varsayılan auto biçiminde alan türü kendi en iyi çıktısını yazdırır.
Tür |
|
|
|---|---|---|
Text |
|
|
Text area |
| metin, escape edilmiş, satır sonları karakter olarak korunur |
Number, Range |
|
|
| ||
URL |
|
|
Password | mühürlü değer | hiçbir şey (bkz. Password) |
Color picker |
|
|
Select, Radio buttons, Button group |
| etiket ( |
Checkboxes |
|
|
True / false |
|
|
Date, Date and time, Time |
| şununla biçimlendirilir: Display format veya sitenin biçimi |
Link |
|
|
WYSIWYG editor | saklanan HTML | paragraflar eklenir, kses ile filtrelenir, kısa kodlar çalışır |
oEmbed |
| sağlayıcının gömme kodu, önbelleğe alınmış |
Image |
|
|
File |
|
|
Icon picker |
|
|
Map |
| adres, harita yer tutucusu ve "View on map" bağlantısı |
Post object |
| bağlantılı başlık |
Page link |
| metni kalıcı bağlantı olan bağlantı |
Relationship |
|
|
Taxonomy |
| terim adları, arşivlere bağlantılı |
User |
| görünen adlar |
Group | dizi | hiçbir şey ( |
Repeater | dizi listesi |
|
Accordion, Tab |
| hiçbir şey |
Her türün sayfası aynı örnekleri ayrıntılı gösterir.
Diğer biçimler
Diğer biçimler türün biçimlendiricisini kullanmaz. Ham değeri alır, bir diziyi basit öğelerinden oluşan virgülle ayrılmış bir dizeye çevirir ve tek bir bağlam için escape eder. HTML öznitelikleri, URL'ler veya betiklere yerleştirdiğiniz değerler için kullanın.
| Escape işlevi | Tipik kullanım |
|---|---|---|
|
| bir öğenin içindeki metin, türün biçimlendirmesi olmadan |
|
| bir HTML öznitelik değeri |
|
| bir bağlantı veya görsel adresi (şeması olmayan değere |
|
| satır içi betik dizesinin içindeki değer |
|
| yazı içeriği gibi izin verdiğiniz HTML |
Saklanan select değeri a&b (etiketi A & B) olan örnekler:
Biçim | Çıktı |
|---|---|
|
|
|
|
|
|
|
|
|
|
Dolayısıyla auto olmayan bir biçimde Select, etiketini değil saklanan değerini yazdırır; True / false açıkken 1 yazdırır, kapalıyken hiçbir şey yazdırmaz; Link ise bağlantı yerine şu parçaları yazdırır: url, title, (bağlantı yerine). Bu türler için auto kullanın; url biçimini yalnızca URL, Page link ve benzeri metin değerleri için kullanın.
[wpmcf_field group="company" field="website" format="url" wrap="false"]
[wpmcf_field group="company" field="tagline" format="attr" wrap="false"]Sarmalayıcı ve Display seçenekleri
Yazdırılan her değer <span class="wpmcf-field-value"> içine sarılır; alanın Prefix, Suffix, Wrapper CSS class ve Wrapper HTML ID ayarları Display sekmesinden gelir (bkz. Her alanın sahip olduğu ayarlar).
<span id="price-box" class="wpmcf-field-value price">$19.9 USD</span>Blok düzeyinde çıktılar (WYSIWYG, Repeater, Relationship, Map, Image) için wrap="false" veya 'wrap' => false kullanın; aksi halde span blok öğeler içermiş olur.
Kısaca escape kuralları
wpmcf_get_field(), escape edilmemiş veri döndürür. Çıktıda her zaman escape edin:esc_html(),esc_attr(),esc_url(),wp_kses_post().wpmcf_the_field()ve kısa kod sizin yerinize escape eder (Display seçenekleri de escape edilir).- Zengin metin kaydedilirken (
wp_kses_post) ve yazdırılırken yeniden filtrelenir. - Parolalar asla yazdırılmaz veya değişken motoru tarafından döndürülmez.
Değerlerdeki değişkenler
Saklanan bir dize {{ expression }} içerebilir (düzenleme ekranı Text, Text area, Email ve URL alanlarında bir ekleme düğmesi sunar). wpmcf_get_field(), wpmcf_the_field() ve kısa kod, değeri yazan kişi filtrelenmemiş HTML yayınlayabiliyorsa (yazının yazarı ya da kullanıcı alanları için kullanıcının kendisi) ifadeleri çözümler; yorum değerleri hiçbir zaman çözümlenmez. wpmcf/field/resolve_variables filtresi bunu geçersiz kılabilir.
Geliştiriciler için filtreler
Filtre | Amaç |
|---|---|
| Ham değeri döndürülmeden veya yazdırılmadan önce değiştirir. |
| Sarmalayıcı eklenmeden önce escape edilmiş çıktıyı değiştirir. |
| Nihai işaretlemeyi değiştirir. |
| Repeater liste işaretlemesini değiştirir. |
| Okunabilir parolaların yazdırılmasına izin vermek için |
| Bir değer için |
| Bir nesne için kısa koda izin verin veya engelleyin. |
REST API
Bir alan grubunda REST etkinse, bir yazının REST yanıtı wpmcf_get_field() ile aynı değerleri wpmcf altında, alan grubu anahtarına göre gruplanmış olarak içerir:
{ "wpmcf": { "faq": { "items": [ { "question": "…" } ], "featured": true, "location": { "address": "A", "lat": 1, "lng": 2, "zoom": 13 } } } }Yazma, düzenleme ekranıyla aynı temizleyicilerden geçer; parola alanları asla döndürülmez.
Sorun giderme
- Hiçbir şey yazdırılmıyor. Alan boş, nesne bulunamıyor, ziyaretçi nesneyi görüntüleyemiyor (
idiçeren kısa kod) ya da alan bir Group, Accordion, Tab veya Password (sayfalarına bakın). - Bir
&görüyorum; aslında&bekliyordum. Bu doğru HTML'dir.wpmcf_the_field()escape eder; tarayıcı&olarak gösterir. - Varsayılan metnim gösterilmiyor.
default, nesne varsa ve alan boşsa kullanılır. Nesnenin kendisi bulunamazsa yazdırılmaz. - WYSIWYG değerindeki bir kısa kod çalışmadı. Yalnızca yazdırılan çıktıda çalışır,
wpmcf_get_field()içinde çalışmaz.
Hâlâ takıldınız mı? Destek ile iletişime geçin