Yerel JSON ve sürüm kontrolü
5 dk okuma
Local JSON, tanımlarınızı dosyalara yansıtır. Temanızda wpmcf-json adlı bir klasör varsa, bir alan grubunu, yazı türünü, taksonomiyi veya seçenek sayfasını her kaydettiğinizde eklenti bunu oraya küçük bir JSON dosyası olarak da yazar. Klasörü Git'e commit edin, temayla birlikte dağıtın; ikinci bir site değişiklikleri tek tıkla yükleyebilir.
Etkinleştirme
Local JSON, klasör oluşturulana kadar kapalıdır.
- Şunu açın: WPM Fields › Tools › Local JSON. Folder satırı, WordPress klasörüne göreli yolu ve bir rozet gösterir.
- Rozet Folder missing diyorsa ve eklenti klasörü oluşturabiliyorsa Create folder düğmesine tıklayın. Local JSON folder created. bildirimini görürsünüz.
- Eklenti klasörü oluşturamıyorsa (mesaj The plugin cannot create it here; create it with your file manager or FTP. der), etkin temanızın içinde
wpmcf-jsonadlı bir klasör oluşturun ve web sunucusunun yazabilmesini sağlayın.
Varsayılan klasör wp-content/themes/{your active theme}/wpmcf-json yoludur. Alt tema kullanılıyorsa alt temanın klasörüdür.
Rozet | Anlamı |
|---|---|
Active | Klasör var ve yazılabilir. Kaydedilenler dosyalara yazılır. |
Folder missing | Hiçbir şey yazılmaz. |
Not writable | Klasör var ancak sunucu buna yazamıyor. Kaydetme yine çalışır; uyarı alırsınız ve sorun Settings › Health altında kaydedilir. |
Off | Bir geliştirici filtresi kaydetme yolunu kapattı. |
Eklenti klasörü oluşturduğunda web erişimini engelleyen index.php, .htaccess ve web.config dosyalarını da ekler: tanımlar yalnızca diskten okunur, web üzerinden asla okunmaz. nginx kullanıyorsanız klasör için kendi engelleme kuralınızı ekleyin.
Neyin ne zaman yazıldığı
- Her tanım için tür ve anahtarla adlandırılmış bir dosya:
Tür | Dosya |
|---|---|
Alan grubu |
|
Yazı türü |
|
Taksonomi |
|
Seçenek sayfası |
|
- Dosya, bir tanım kaydedildiğinde yazılır ve silindiğinde kaldırılır. Klasörü oluşturmak, mevcut tanımlarınız için dosya yazmaz: her birini açıp kaydedin veya hepsini tek dosyada almak için bir kez Export kullanın.
- Her dosya, tam olarak bir tanım içeren normal bir dışa aktarma belgesidir; ek olarak bir
modifiedzamanı (Unix saniyesi) içerir:
{
"format": "wpmcf-export",
"version": 1,
"plugin_version": "1.0.0",
"exported_at": "2026-10-03T12:59:23+00:00",
"modified": 1791032363,
"field_groups": [ { "key": "book_details", "label": "Book details", "fields": [] } ]
}- PHP kodundan gelen alan grupları klasöre yazılmaz.
- Klasördeki diğer dosyalar ve yukarıdaki kalıplara uymayan dosya adları (büyük harfli anahtarlar dahil) yok sayılır.
Değişiklikleri dosyalardan yükleme
Local JSON sekmesi, tanımları siteden farklı olan dosyaları listeler.
Rozet | Anlamı |
|---|---|
New | Tanım bu sitede yok. |
Changed | Tanım var ancak dosyada farklı bir sürümü tutuluyor. |
Bir dosyayı yüklemek için satırında Sync düğmesine tıklayın. Birden fazla dosya bekliyorsa kartın üstünde Sync all görünür. Bildirimde Synced N definition(s). yazar. Başarısız olan her satır, içe aktarma raporundaki gibi mesajıyla birlikte kartın altında listelenir. Hiçbir şey beklemiyorsa liste Everything is in sync. der.
Bir dosya ne zaman sunulur?
Bir dosya, tanımı sitede yoksa sunulur, veya aşağıdakilerin hepsi doğruysa:
- dosya, sitede saklanandan farklıdır;
- dosya, eklentinin daha önce kendisinin yazdığı veya eşitlediği içerikten ibaret değildir;
- alan grupları ve seçenek sayfaları için dosyanın
modifiedzamanı sitenin son değişikliğinden yenidir.modifiedzamanı olmayan dosya bu denetimi geçer.
Yazı türleri ve taksonomiler değişiklik zamanı tutmaz; bu yüzden farklı olan her dosya sunulur.
Bu sayede sitenin kendi son kaydı kazanır: dosya yazıldıktan sonra siteden bir alan grubunu düzenlerseniz eski dosya sunulmaz ve bir sonraki kayıt onun üzerine yazar.
Bir dosyayı eşitlemek, saklanan tanımı Replace existing definitions açıkken yapılan bir içe aktarma gibi değiştirir. Dosyayı yeniden yazmaz; bu nedenle Git hiçbir değişiklik görmez.
Okunamayan dosyalar
Bozuk dosyalar, nedeniyle birlikte Some files cannot be read altında listelenir:
Mesaj | Neden |
|---|---|
The file is not valid JSON. | Bozuk JSON. |
The file must hold exactly one definition whose key matches the file name. | Bir dosyada iki tanım var ya da |
The file cannot be read or is too large. | İzin sorunu ya da 5 MB'tan büyük. |
This file is not a Mass Custom Fields export. | Hatalı |
Git iş akışı
- Geliştirme sitenizde temaya
wpmcf-jsonklasörünü oluşturun; bunun için Create folder düğmesini kullanın (veya elle oluşturun). - Takip etmek istediğiniz tanımları kaydedin.
wpmcf-jsonklasörünü commit edin. - Temayı staging veya canlı siteye dağıtın.
- O sitede Tools › Local JSON ekranını açıp Sync all düğmesine tıklayın. (Ya da
wp wpmcf json sync --allkomutunu çalıştırın, bkz. WP-CLI.) - İki sitede de çalışın ve döngüyü tekrarlayın. Her iki site de aynı tanımı değiştirdiyse önce dosyayı Git'te birleştirin; alan gruplarında en yeni
modifiedzamanı kazanır.
Alan anahtarlarını yeniden adlandırırsanız alan grubu dosyalarındaki uid değerlerini koruyun: içe aktarıcının sütunları silip yeniden oluşturmak yerine yeniden adlandırmasını sağlayan değerler bunlardır. Anahtarları sitede zaten var olan alanlar için uid değeri içermeyen elle yazılmış bir dosya sorun değildir: saklanan uid yeniden kullanılır.
Eşitleme, kaydetme gibi tabloları oluşturur veya değiştirir; bu yüzden büyük değişikliklerde önce staging'de, sonra canlıda çalıştırın.
Geliştirici filtreleri
Filtre | Tür | Varsayılan | Amaç |
|---|---|---|---|
|
|
| Dosyaların yazıldığı yer. Local JSON'u kapatmak için boş bir dize döndürün. |
|
| kaydetme yolu; alt tema etkinse ek olarak ana temanın | Okunan klasörler. Aynı dosya adı birden çok klasörde varsa ilk klasör kazanır. |
|
|
| Yazmayı zorla açar veya kapatır. |
// Keep definitions in a shared plugin folder instead of the theme.
add_filter( 'wpmcf/local_json/save_path', fn () => WP_CONTENT_DIR . '/site-config/wpmcf-json' );
add_filter( 'wpmcf/local_json/load_paths', fn () => [ WP_CONTENT_DIR . '/site-config/wpmcf-json' ] );Tools ekranında gösterilen yollar WordPress klasörüne görelidir. Yalnızca ek bir yükleme yolunda (örneğin ana tema) bulunan dosya eşitleme için sunulur; ancak bu tanım daha sonra kaydedildiğinde dosya kaydetme yoluna yazılır.
Bir tanımı silmek yalnızca kaydetme yolundaki dosyayı kaldırır. Başka bir yükleme yolundaki kopya yeniden yeni olarak sunulur.
Sorun giderme
Kaydettikten sonra hiçbir şey yazılmıyor. Rozet Active demelidir. Klasör adını (wpmcf-json), klasörün etkin temanın içinde olduğunu (etkin bir alt tema varsa alt temada) ve yazılabilir olduğunu kontrol edin.
"Could not write field-group-x.json to the local JSON folder." Kayıt tamamlandı ancak dosya yazılamadı. İzinleri, disk alanını ve Health sekmesini kontrol edin. Bkz. Health ve sorun giderme.
Bir dosya eşitledikten sonra sürekli Changed olarak geri geliyor. Tanım reddediliyor. Mesaj, Sync işleminden sonra kartın altında görünür.
Az önce düzenlediğim dosya sunulmuyor. Dosyanın modified zamanı sitedeki son değişiklikten eski. modified değerini yükseltin (daha büyük herhangi bir Unix zamanı) veya anahtarı kaldırın ya da dosyanın üzerine yazmak için tanımı sitede kaydedin.
Tema güncellendi ve dosyalarım kayboldu. Tema güncellemeleri tema klasörünü değiştirir. Alt tema kullanın veya klasörü yukarıdaki filtrelerle başka yere taşıyın.
Hâlâ takıldınız mı? Destek ile iletişime geçin