Değerleri okuma
3 dk okuma
wpmcf_get_field()
wpmcf_get_field( string $group_key, string $field_key, mixed $object = null, array $args = [] ): mixedTek bir alanın ham, kaçışlanmamış değerini döndürür. Yazdıracağınız yere göre kaçışlayın (bkz. Çıktı biçimleri ve kaçışlama).
Parametre | Tür | Açıklama |
|---|---|---|
| string | Alan grubunun anahtarı |
| string | Bu gruptaki üst düzey bir alanın anahtarı |
| mixed |
|
| array | Aşağıya bakın |
Argümanlar
Anahtar | Tür | Varsayılan | Anlamı |
|---|---|---|---|
| string | Şuradan çıkarılır: |
|
| string veya array | yok | Bir Group veya Repeater değerinin içine ulaşır: |
| string | yok | Tek segmentli bir |
| mixed |
| Değer |
| string, string, int | yok | ID verilmediğinde ve |
format ve wrap değerleri wpmcf_get_field() tarafından yok sayılır; yalnızca yazdıran fonksiyonları etkiler.
Geri aldığınız değer
Değer, veritabanındaki metin değil, alan türünün PHP değeridir. Canlı bir sitede doğrulanmış örnekler:
Alan türü | Döndürülen değer |
|---|---|
Text, textarea, email, URL, WYSIWYG |
|
Number, range |
|
True / false |
|
Select, radio, button group | saklanan değer ( |
Checkbox |
|
Image, file | ek ID'si: |
Group | ilişkisel |
Repeater | satır dizilerinin listesi |
Password | Saklanan, mühürlü dize (bir hash, |
Her türün tam yapısı Alan türleri bölümünde belgelenmiştir.
Ne zaman döner: default
default değeri, sonuç NULL olduğunda döndürülür:
- alan hiç kaydedilmemiş veya temizlenmiş;
- grup, alan veya nesne mevcut değil ya da nesne referansı geçersiz;
- değerin içinde
pathmevcut değil; - geçerli bir yazı yok veya
user/term/commentbağlamı için ID yok.
Gerçekten kaydedilmiş boş bir dize için kullanılmaz; 0, '0' ve false gerçek değerlerdir.
$phone = wpmcf_get_field( 'shop', 'phone', 'option', [ 'default' => 'Not available' ] );Group ve Repeater alanlarının içine ulaşma
// Group field "details" holds {"city": "Rome"}
wpmcf_get_field( 'listing', 'details', $id, [ 'path' => 'city' ] ); // 'Rome'
wpmcf_get_field( 'listing', 'details', $id, [ 'sub_key' => 'city' ] ); // 'Rome'
wpmcf_get_field( 'listing', 'details', $id, [ 'path' => [ 'city' ] ] ); // 'Rome'
// Repeater field "items": row index, then sub-field key
wpmcf_get_field( 'listing', 'items', $id, [ 'path' => '1.name' ] ); // second row's name
wpmcf_get_field( 'listing', 'items', $id, [ 'path' => '5.name', 'default' => 'none' ] ); // 'none'Satır dizinleri 0'dan başlar. Password alanları kapsayıcıların içine yerleştirilemez (alan oluşturucu bunları reddeder); bu yüzden bir path hiçbir zaman bir parolaya ulaşmaz.
{{ }} ifadeleri değerlerin içinde
Bir dize değeri {{ ... }} ifadesi içeriyorsa, wpmcf_get_field() bunu çözer; ancak yalnızca değeri yazan kişi filtrelenmemiş HTML kullanabiliyorsa: yazı alanlarında yazının yazarı, kullanıcı alanlarında kullanıcının kendisi. Terim, widget ve seçenek değerleri her zaman çözülür; comment değerleri ise hiçbir zaman. Kuralı karşılamayan değerler süslü parantezleri olduğu gibi bırakılarak döndürülür (doğrulandı: bir katkıcının yazı değeri V {{ wp.post_title }} olarak kalır). wpmcf/field/resolve_variables filtresi bu kararı değiştirir. Ayrıntılar: Değişkenler ve hook'lar.
// Stored: "Call {{ glb.phone }}!" -> returns "Call 555!"Filtreler
wpmcf/field/value, değer okunduktan sonra onu filtreler (argümanlar: değer, grup anahtarı, alan anahtarı, nesne ID'si, $args). Bkz. Değişkenler ve hook'lar.
Geçerli nesne
Şu durumda: $object = null ve varsayılan post bağlamı; fonksiyon geçerli yazıyı kullanır (get_the_ID() veya tekil sayfada sorgulanan nesne). "Geçerli kullanıcı", "geçerli terim" ya da "geçerli yorum" diye bir kavram yoktur: bu bağlamlar için bir ID veya referans vermelisiniz; vermezseniz default döndürülür.
wpmcf_has_field()
wpmcf_has_field( string $group_key, string $field_key, mixed $object = null, array $args = [] ): boolDeğer boş değilse true döner. Boş; şunlar demektir: null, '' veya []. 0, '0' ve false değer sayılır (doğrulandı: kapalı olarak kaydedilmiş bir True/false alanı ve 0 olarak kaydedilmiş bir number alanı da true döndürür). $args argümanları wpmcf_get_field() ile aynıdır; bir alan ayarlanmamışken işaretlemeyi atlamak için kullanın.
if ( wpmcf_has_field( 'listing', 'price' ) ) {
echo '<p class="price">';
wpmcf_the_field( 'listing', 'price' );
echo '</p>';
}Seçenek sayfaları
Bir seçenek sayfasında gösterilen grupların değerleri grup başına tek bir satırda tutulur (birkaç seçenek sayfasında gösterilen grubun alan başına tek değeri vardır).
wpmcf_get_option_field( string $group_key, string $field_key, array $args = [] ): mixed
wpmcf_has_option_field( string $group_key, string $field_key, array $args = [] ): boolKabul edilen $args: path, sub_key, default. Bağlam her zaman options olur.
$company = wpmcf_get_option_field( 'site_settings', 'company_name', [ 'default' => get_bloginfo( 'name' ) ] );Bunlar wpmcf_get_field( $group, $field, 'option' ) ile eşdeğerdir.
Kullanıcılar, terimler, yorumlar
$bio = wpmcf_get_field( 'profile', 'bio', 'user_' . get_current_user_id() );
$color = wpmcf_get_field( 'brand', 'color', get_queried_object() ); // a WP_Term on a term archive
$rating = wpmcf_get_field( 'review', 'rating', get_comment() ); // a WP_CommentOkumalarda erişim denetimi yoktur
wpmcf_get_field() tema kodudur ve kısıtlanmamıştır: istenirse özel yazıların, taslakların ve diğer kullanıcıların profillerinin değerlerini döndürür. Kullanıcıdan gelen ID'leri kendi denetiminiz olmadan ona vermeyin. Editörlerin ve katkıcıların yazabildiği kısa kod ile blok ise görünürlüğü uygular (bkz. Kısa kodlar).
Örnekler
// Archive loop: price of each post.
while ( have_posts() ) {
the_post();
$price = wpmcf_get_field( 'listing', 'price' );
if ( $price !== null ) {
printf( '<span class="price">%s</span>', esc_html( number_format_i18n( (float) $price, 2 ) ) );
}
}
// An image field: attachment ID to HTML.
echo wp_get_attachment_image( (int) wpmcf_get_field( 'listing', 'photo' ), 'large' );
// A checkbox field.
foreach ( (array) wpmcf_get_field( 'listing', 'features' ) as $feature ) {
echo '<li>' . esc_html( $feature ) . '</li>';
}Hâlâ takıldınız mı? Destek ile iletişime geçin