REST API
4 dk okuma
İki ayrı yapı vardır:
|
| |
|---|---|---|
Nerede | /wp/v2/posts |
|
Amaç | Dışarıdan alan değerlerini okumak ve yazmak | Eklentinin yönetim ekranlarını çalıştırmak |
Kim | Yazıyı okuyabilen/düzenleyebilen herkes | Yöneticiler ( |
Herkese açık API mi? | Evet | Hayır (sürümler arasında değişebilir) |
wpmcf özniteliği
Alan grubu düzenleyicisinde, Settings bölümünde Show in the REST API açık olan her alan grubunun değerleri, grubun konum kurallarında adı geçen her yazı türünün REST API'sinde wpmcf altında görünür.
Açma
- Alan grubunu açın, Settings bölümünde Show in the REST API seçeneğini etkinleştirin. Varsayılan olarak kapalıdır.
- Grubun en az bir Post type is equal to X biçiminde konum kuralı olmalıdır. Öznitelik, bu tür her yazı türünün uç noktasına eklenir. Diğer türdeki kurallar (sayfa şablonu, taksonomi, kullanıcı rolü, ...) uç nokta eklemez; yalnızca
Post type == Xekler. - Password alanları okumalara asla dahil edilmez ve yazılamaz.
REST etkin hiçbir grubun adını vermediği bir yazı türünde hiç wpmcf özniteliği yoktur (yalnızca yazılar belirtildiğinde sayfalar için doğrulandı).
Okuma
GET /wp-json/wp/v2/posts/42{
"id": 42,
"wpmcf": {
"listing": {
"price": 9.5,
"tags": ["red"],
"details": { "city": "Rome" },
"bio": null
}
}
}- Önce grup anahtarına, sonra alan anahtarına göre anahtarlanır. Grubun tüm değer alanları listelenir; değeri olmayan alan
nullolur. - Değerler,
wpmcf_get_field()işlevinin döndürdüğü PHP değerleridir (sayılar sayı olarak, checkbox dizi olarak, gruplar nesne olarak, repeater satır dizileri olarak, görseller ek dosya ID'leri olarak). passwordalanları ve password alt alanları dışarıda bırakılır.- Aynı veri
context=viewvecontext=editiçin döndürülür. - Yazının kendi REST görünürlüğünü izler. view bağlamında parola korumalı bir yazı, oturum açmamış ve sıradan isteklerde boş bir
wpmcf([]) döndürür;context=editile (edit_postgerekir) değerler döndürülür (doğrulandı). - Koleksiyonlarda (
/wp/v2/posts?search=...) ve_fields=id,wpmcfile çalışır._fields,wpmcfdeğerinin altına daraltamaz. - Özniteliği okumak ek bir yetki gerektirmez: oturum açmamış bir ziyaretçi, yazıyı okuyabildiği gibi yayımlanmış bir yazının değerlerini de okuyabilir. Değerleri gizli kalması gereken gruplarda bu ayarı açmayın.
Yazma
POST /wp-json/wp/v2/posts/42
Content-Type: application/json
{ "wpmcf": { "listing": { "price": "19.25", "tags": ["red", "blue"] } } }Ayrıca PUT/PATCH ile ve bir yazı oluştururken (POST /wp/v2/posts, bir wpmcf nesnesiyle) de çalışır.
Kurallar (hepsi doğrulandı):
Kural | Davranış |
|---|---|
Yetki | Kullanıcının yazı üzerinde |
Yapı |
|
Bilinmeyen grup |
|
Bilinmeyen alan |
|
Kilitli tür |
|
Geçersiz değer |
|
Kısmi güncellemeler | Yalnızca gönderdiğiniz alanlar değişir; diğerleri değerlerini korur (doğrulandı). |
Ya hep ya hiç | Hiçbir şey yazılmadan önce tüm gruplar ve alanlar doğrulanır. Hatalı ikinci bir grup, ilkine dokunmadan bırakır (doğrulandı). |
Taxonomy alanları | "Save terms" seçeneği açık Taxonomy alanları, düzenleme ekranındaki gibi terimleri yazıya atar. |
Parolalar | Password alanları, okumalardaki gibi reddedilir: göndermek |
Hata |
|
// From PHP, with the WordPress HTTP API and an application password.
$response = wp_remote_post( 'https://example.com/wp-json/wp/v2/posts/42', [
'headers' => [
'Authorization' => 'Basic ' . base64_encode( 'user:application-password' ),
'Content-Type' => 'application/json',
],
'body' => wp_json_encode( [ 'wpmcf' => [ 'listing' => [ 'price' => 450000 ] ] ] ),
] );// In the block editor or an admin script.
apiFetch( { path: '/wp/v2/posts/42', method: 'POST', data: { wpmcf: { listing: { price: 450000 } } } } );Şema
OPTIONS /wp-json/wp/v2/posts isteği, şemada wpmcf öğesini type: object, context: ["view", "edit"] ile, her grup için bir nesne ve her alan için bir özellik olarak listeler. Değeri alan türü temizlediği için özellik türleri bilerek gevşek tutulmuştur:
Alan türü | Şema türü |
|---|---|
True / false |
|
Number, range |
|
JSON değerli (checkbox, group, repeater, map, link, relationship ...) |
|
Metin benzeri |
|
Diğer her şey |
|
Sınırlamalar
- Yalnızca yazılar. Kullanıcıların, terimlerin ve yorumların
wpmcfözniteliği yoktur (PHP işlevlerini veya post-meta köprüsünü kullanın). - Yalnızca üst düzey alanlar; bir alt değeri değiştirmek için kapsayıcının tamamını gönderin.
- Bir yazı türüne
Post type == Xdışındaki kurallarla bağlanan gruplar sunulmaz. - Alan başına yetki yoktur; grubun her değeri yukarıdaki kurallar çerçevesinde okunabilir ve yazılabilir.
wpmcf/v1 ad alanı
/wp-json/wpmcf/v1/..., eklentinin React tabanlı yönetim ekranlarının API'sidir: alan grupları, yazı türleri, taksonomiler, seçenek sayfaları, Global Data, ayarlar, araçlar, ilk kurulum ve Health. Dahilidir: rotalar, parametreler ve yanıtlar her sürümde değişebilir ve entegrasyonlar için tasarlanmamıştır.
Yetkiler (dört tür istekle birkaç rota için doğrulandı):
Rota ailesi | Yönetici | Editör | Abone | Oturum açmamış |
|---|---|---|---|---|
|
|
|
|
|
|
|
|
|
|
Her rotanın bir permission_callback işlevi (bir yetki, Pro rotaları için ayrıca lisans denetimi) ve bir args şeması vardır. Neredeyse hepsi manage_options gerektirir; yalnızca blok düzenleyici rotaları edit_posts gerektirir (bkz. Bloklar ve Block Bindings). admin-ajax kullanılmaz. Çerez kimlik doğrulaması, her WordPress REST isteğinde olduğu gibi X-WP-Nonce üstbilgisini gerektirir (wp_create_nonce( 'wp_rest' )); uygulama parolaları da çalışır.
Bu sürümdeki rota grupları:
Önek | Kullanan |
|---|---|
| Health ekranı, bildirimler, yönetim araması |
| Alan grubu düzenleyicisi, tablo durumu (Table health), konum seçici |
| İçerik modeli ekranları |
| Global Data, Settings, kurulum sihirbazı |
| Blok düzenleyici |
| İçe aktarma, dışa aktarma, Local JSON, ACF taşıma |
Pro: | Pro ekranları ve ön yüz uç noktaları |
Bunları bir temadan veya başka bir eklentiden çağırmayın. Tanımları koddan oluşturmak veya değiştirmek için PHP ile kaydedilmiş grupları ya da JSON içe aktarmayı kullanın (bkz. Alan grupları); değerleri okumak veya yazmak için bu bölümdeki işlevleri ya da wpmcf özniteliğini kullanın.
Hâlâ takıldınız mı? Destek ile iletişime geçin