Değer yazma
3 dk okuma
wpmcf_update_field()
wpmcf_update_field( string $group_key, string $field_key, mixed $value, mixed $object = null, array $args = [] ): boolBir değeri düzenleme ekranının yaptığı gibi kaydeder: alan türü onu doğrular ve temizler, grup tablosundaki satır yazılır ve yazının sayfa önbellekleri temizlenir (wpmcf/cache/purge_post). Bir yazı nesnesi için ayrıca "terimleri kaydet" olarak ayarlanmış Taxonomy alanlarının terimlerini atar.
Parametre | Açıklama |
|---|---|
| Grup ve sütunu olan üst düzey bir alan. Düzen alanlarının (tab, accordion) değeri yoktur. Alt alanlar kapsayıcıları üzerinden yazılır (dizinin tamamını verin). |
| Yeni değer, |
| Okumadakiyle aynı biçimler: Nesne referansları. Nesne mevcut olmalıdır. |
|
|
Başarılı olursa true, şu durumlarda false döndürür:
- grup, alan veya nesne mevcut değil ya da nesne referansı geçersiz;
- alan türü değeri reddediyor (örneğin 128 bayttan uzun bir Password alanı). Nedenini içeren bir
_doing_it_wrong()bildirimi oluşturulur; - yazma başarısız oldu (hata WPM Fields › Settings › Health ekranına kaydedilir).
wpmcf_update_field( 'listing', 'price', 450000, $post_id );
wpmcf_update_field( 'listing', 'features', [ 'garden', 'garage' ], $post_id );
wpmcf_update_field( 'listing', 'details', [ 'city' => 'Rome' ], $post_id );
wpmcf_update_field( 'profile', 'bio', 'Hello', 'user_3' );
wpmcf_update_field( 'brand', 'color', '#ff6600', 'term_5' );
wpmcf_update_field( 'listing', 'price', null, $post_id ); // clear"Temizlenmiş" uygulamada ne anlama gelir
Düzenleme ekranındaki gibi, türün kendi kuralları geçerlidir. Türün kabul edemediği değerler hata olarak bildirilmez: atılır, alan boş kaydedilir ve fonksiyon yine de true döndürür. Önemli olduğunda sonucu geri okuyarak denetleyin. Doğrulanmış örnekler:
Yazdığınız | Saklanan |
|---|---|
Text |
|
Number |
|
Checkbox |
|
Seçeneklerde olmayan Select değeri ( |
|
URL | boş (önceki değer boşla değiştirilir) |
WYSIWYG |
|
Password | hiçbir şey değişmez, şunu döndürür: |
Her türün kuralları için Alan türleri sayfalarına, Password alanları için Parola yardımcıları ve güvenlik bölümüne bakın.
wpmcf_delete_field()
wpmcf_delete_field( string $group_key, string $field_key, mixed $object = null, array $args = [] ): boolAlanın değerini temizler (sütunu NULL yapar; satır ve diğer alanlar kalır). Değer temizlendiğinde true döndürür (ya da temizlenecek bir şey yoksa); bilinmeyen bir grup, alan veya geçersiz bir nesne referansı için false döndürür. wpmcf_update_field() fonksiyonunun aksine nesnenin var olmasını gerektirmez. wpmcf_delete_field( $g, $f, $id ), null değerini wpmcf_update_field() fonksiyonuna vermekle aynıdır.
Yetkiler: hiç yok
add_action( 'wp_ajax_save_rating', function () {
check_ajax_referer( 'save_rating' );
$post_id = absint( $_POST['post_id'] ?? 0 );
if ( ! current_user_can( 'edit_post', $post_id ) ) {
wp_send_json_error( null, 403 );
}
$ok = wpmcf_update_field( 'review', 'rating', absint( $_POST['rating'] ?? 0 ), $post_id );
$ok ? wp_send_json_success() : wp_send_json_error();
} );İzin denetimini WordPress'in sizin yerinize yapmasını istiyorsanız REST API'yi kullanın: yazıda edit_post yetkisi gerektirir.
Seçenek sayfaları
wpmcf_update_option_field( string $group_key, string $field_key, mixed $value ): bool
wpmcf_delete_option_field( string $group_key, string $field_key ): boolGrubun paylaşılan seçenek satırına yazar. wpmcf_update_option_field( 'g', 'f', $v ) ifadesi wpmcf_update_field( 'g', 'f', $v, 'option' ) ile eşdeğerdir. Yazmadan sonra, sayfanın kendisinde yapılan bir kayıtta olduğu gibi, grubu gösteren her seçenek sayfası için wpmcf/options_pages/values_saved eylemi bir kez tetiklenir (grup için hiçbir seçenek sayfası kayıtlı değilse tetiklenmez). Yetki denetimi yoktur.
wpmcf_update_option_field( 'site_settings', 'hours', 40 );Global Data
Global Data değişkenlerinin kendi yazıcısı vardır: wpmcf_update_global(). Bkz. Global Data fonksiyonları.
Birden fazla yazma
Her çağrı tek bir satır upsert işlemidir. Aynı nesnenin birkaç alanını yazmak için fonksiyonu alan başına bir kez çağırın; işlem (transaction) yoktur. Sayfa önbellekleri, her yazı yazımında temizlenir.
Sınırlamalar
- Yalnızca sütunu olan üst düzey alanlar yazılabilir.
'details.city'yazmak desteklenmez; grubu okuyun, diziyi değiştirin ve grubun tamamını yazın. - Alan türü sitede kullanılabilir olmalıdır (örneğin etkin lisansı olmayan bir Pro türüne yazılamaz).
- Yazmalar
save_posteylemini tetiklemez. Başka kodun tepki vermesi gerekiyorsa kendi hook'unuzu tetikleyin veyawpmcf/cache/purge_postkullanın. - Password alanı, Store as ayarına göre mühürlenir; bkz. Password.
Hâlâ takıldınız mı? Destek ile iletişime geçin