TL; DR
Tidak ada JavaScript API di inti WordPress dan tidak ada yang direncanakan, tetapi sebenarnya, tidak perlu.
Backend
Pertama-tama katakanlah, mengenai backend, beberapa informasi yang berguna dapat diambil dari variabel global JavaScript yang sudah ada (WordPress menyukai semua rasa global).
Misalnya
ajaxurl
agar admin-ajax.php
url digunakan dalam panggilan ajax
pagenow
untuk siput halaman admin saat ini, misalnya 'dasbor'
adminpage
untuk file halaman admin saat ini, misalnya 'index-php' (titik diganti dengan hiphens)
typenow
untuk jenis posting saat ini saat dalam edit.php
, post.php
ataupost-new.php
userSettings
dapat digunakan untuk mendapatkan informasi oc pengguna saat ini login
Informasi itu memberi Anda beberapa "konteks" dari status aplikasi saat Anda berada di backend.
Untuk hal-hal lain yang disebutkan dalam pertanyaan, Anda tidak memerlukan "API", karena fungsi jQuery super-sederhana dapat melakukan triknya. Untuk misalnya mengetahui apakah menu admin ditutup, Anda dapat memeriksa kelas "terlipat" di badan:
if ( $(body).hasClass('folded') ) {
alert( 'Admin left menu is closed!' );
} else {
alert( 'Admin left menu is open!' );
}
Kekurangan Dokumentasi
Untuk hal-hal seperti cuplikan sebelumnya, tidak perlu membuat fungsi. WP sudah memiliki terlalu banyak fungsi di PHP. Saya sangat berharap bahwa fungsi tambahan seperti itu tidak akan ditambahkan ke inti.
Apa yang benar-benar dibutuhkan oleh JavaScript di WordPress adalah dokumentasi untuk fitur yang ada: tidak ada hal yang saya tulis di atas yang didokumentasikan dalam dokumen resmi apa pun seperti Codex atau dalam file sumber.
Paling depan?
Sampai di sini saya hanya berbicara tentang backend.
Ini karena hampir semua hal yang terjadi di frontend terkait dengan tema yang sedang digunakan. Mari kita bayangkan ada file JavaScript yang disediakan oleh WordPress yang berisi fungsi untuk mendapatkan informasi tentang kondisi aplikasi saat ini; jika suatu tema tidak membuat enqueue file JS itu, fungsi-fungsi itu tidak tersedia dan untuk memaksa suatu tema untuk enqueue skrip seperti itu akan benar-benar salah.
Tidak perlu API (lain)
Namun, di WordPress, setiap informasi yang Anda dapatkan melalui PHP dapat dengan mudah digunakan dalam JavaScript juga dan tanpa permintaan AJAX. Fungsi yang memungkinkan ini adalah wp_localize_script()
.
Anggap Anda ingin mendapatkan pengguna saat ini dan data pengguna seperti peran pengguna di JavaScript Anda dan Anda juga ingin mengetahui variabel kueri yang digunakan di halaman saat ini, Anda dapat melakukan hal berikut:
$data = array(
'user' => wp_get_current_user(),
'query_vars' => $GLOBALS['wp']->query_vars
);
wp_localize_script( 'myscript', 'MyScriptData', $data );
Melakukannya dalam skrip Anda, MyScriptData.user
variabel akan menjadi objek JavaScript dengan semua informasi pengguna semua variabel kueri.
Ini berlaku untuk skrip backend dan frontend (dengan kata lain: untuk kedua "sisi"). Tidak perlu untuk API JavaScript tambahan hanya untuk mengambil informasi itu. PHP sudah cukup jika Anda menggunakan cara yang tepat untuk meneruskan informasi dari PHP ke JS.
Backbone.js
Backbone.js , adalah kerangka kerja JavaScript yang memungkinkan (semacam) pola pengembangan MVC dengan JavaScript. Itu termasuk dalam inti dengan WP 3.5 - terutama untuk menangani galeri media.
Pustaka ini bukan WordPress JavaScript API, karena tentu saja memungkinkan pengembangan JavaScript yang lebih kuat, tetapi tidak ada fungsi khusus WordPress yang ditambahkan ke pustaka itu dan ini adalah satu-satunya penggunaan inti saat ini dari Backbone.js. Pustaka media kurang lebih tidak terdokumentasi dan tidak memiliki API publik. Dan AFAIK tidak direncanakan untuk mengisi celah itu. (Lebih dari senang untuk mengubah / menghapus pernyataan itu - jika seseorang dapat membuktikan saya salah).
WP-API
Seperti yang ditunjukkan oleh Rarst dan Brian Fegter , WP API akan menjadi bagian dari inti (mungkin dimulai dengan WP 4.1).
Tetapi saya harus mengatakan bahwa itu bukan API JavaScript. Itu hanya memungkinkan untuk menghubungkan permintaan HTTP ke titik akhir aplikasi yang dikendalikan oleh WP-API. Dan API mengambil data dari database dan mengembalikannya JSON diformat di sana. Contoh dari dokumen:
Ingin mendapatkan kiriman situs Anda? Cukup kirim GET
permintaan ke /wp-json/posts
. Perbarui pengguna dengan ID 4
? Kirim POST
permintaan ke /wp-json/users/4
. Dapatkan semua posting dengan istilah pencarian "luar biasa"? GET /wp-json/posts?filter[s]=awesome
.
Karena permintaan HTTP dan respons JSON terkait dapat ditangani dengan bahasa apa pun yang mendukung permintaan HTTP dan format data JSON (di antaranya PHP, Ruby, Python, ASP, dll.), Tujuan utama API WP adalah memungkinkan untuk mendapatkan dan mengatur data WordPress. dari aplikasi non-WP. Itu artinya dari dalam aplikasi apa pun , tidak hanya WordPress.
Tentu, karena JavaScript adalah bahasa yang dapat menangani permintaan HTTP dan format JSON, Anda dapat menggunakan WP-API dari dalam JavaScript JavaScript juga. Seseorang juga bekerja pada klien WP js untuk API itu, tetapi
menggunakan wp_enqueue_script()
+ fungsi Ajax API + WordPress PHP dimungkinkan untuk mengambil semua informasi yang Anda butuhkan tanpa API tambahan. Dan karena ketiga "bahan" tersebut adalah standar yang ditetapkan WP, menggunakannya bukan merupakan "solusi sendiri". Itu hanya menggunakan solusi standar untuk melakukan tugas kustom (dan umum), yang merupakan inti dari pengembangan plugin ini.
bahkan dimungkinkan untuk menggunakan JavaScript untuk menggunakan WP API. Hanya karena WP-API mengembalikan JSON, itu tidak menjadikannya API JavaScript. Tidak ada fungsi JavaScript yang terlibat (permintaan HTTP dikirim dan repositori JSON dikembalikan. Hampir sama dengan apa yang terjadi dengan menggunakan AJAX API). Kalau tidak, layanan apa pun yang mengembalikan JSON harus dianggap sebagai WordPress JS API. WP-API harus dianggap sebagai API layanan eksternal yang mengembalikan JSON, dan mungkin situs yang menggunakan layanan JSON ini sama dengan yang menyediakannya.
tidak ada satu hal pun yang dapat dilakukan dengan WP API yang tidak dapat juga dilakukan dengan menggunakan API AJAX. Tetapi ada banyak hal yang dapat dilakukan dengan API AJAX. tetapi tidak dengan WP-API.
Catatan tentang WP-API + Backbone.js
Dengan Backbone.js, dimungkinkan untuk mendapatkan dan menyimpan informasi dalam aplikasi yang mendukung permintaan HTTP tenang .
Masalahnya adalah bahwa WordPress, baik dalam permintaan "biasa" dan dalam permintaan AJAX, semuanya TETAP: Hanya mendukung $_GET
dan $_POST
permintaan per default, dan menggunakan satu atau yang lain dengan URl yang sama berakhir di ... hasil yang sama .
Sebaliknya, API WP RESTful, jadi aplikasi berbasis Backbone dapat memanfaatkannya untuk aplikasi JavaScript yang kuat, tetapi saya akan tinggal jauh dari mendefinisikan Backbone atau WP API atau Backbone + WP API sebagai API JavaScript untuk WordPress untuk hal-hal yang dikatakan atas.