Saya baru saja menginstal Wordpress 4.7. Salah satu hal yang disebutkan dalam pengumumannya adalah fitur REST API.
Pemahaman saya adalah:
Namun, saya melihat bahwa dalam instalasi Wordpress 4.7 vanilla, tidak ada satupun endpoint yang berfungsi (misalnya http://examples.com/wp-json/wp/v2/posts
).
Bagaimana saya bisa mengetahui apakah REST API yang baru benar-benar diaktifkan? Dapatkah REST API diaktifkan atau dinonaktifkan dengan UI Wordpress vanila, atau haruskah saya menginstal plugin pihak ketiga untuk melakukannya?
4.7 telah mengaktifkannya secara default. Cara mudah untuk memeriksa apakah itu berfungsi adalah dengan mengunjungi url example.com/wp-json, dan Anda akan mendapatkan daftar titik akhir yang terdaftar di sana
Tidak ada opsi resmi untuk menonaktifkannya karena (setidaknya ada pembicaraan tentang hal ini yang tidak yakin apakah itu ada dalam rilis), beberapa fungsionalitas inti bergantung padanya.
Hal yang paling jelas untuk diperiksa jika tidak berfungsi adalah aturan htaccess Anda, dan apakah Anda memiliki direktori wp-json
Saya memiliki 4.7 juga mengira bahwa REST API dinonaktifkan, tetapi saya tertipu oleh URL-nya. Untuk melihat URL yang benar, carilah baris yang terlihat seperti ini:
link rel='https://api.w.org/
' href='http://mysite?rest_route=/
' />.
Jadi, menggunakan http://mysite?rest_route=/ sebagai awalan menyelesaikan masalah saya. Misalnya untuk memulihkan postingan cukup dengan mengetik: http://mysite?rest_route=/wp/json
Saya tidak dapat menemukan pada dokumentasi bahwa param query diperlukan. Apakah saya satu-satunya?
Saya melihat Anda telah memperbaiki masalah ini, tetapi saya akan meninggalkan solusi saya di sini karena solusi ini juga berhasil untuk saya. Saya mengalami masalah yang sama saat memperbarui dari beta15 ke core api di wp 4.7. Ternyata masalahnya adalah saya memiliki beberapa plugin yang menggunakan fungsi yang sudah tidak digunakan lagi, yaitu register_api_field yang saya ubah menjadi register_rest_field sesuai dengan catatan ini di changelog:
PERUBAHAN TERBATAS: Ubah nama register_api_field() menjadi register_rest_field().
Memperkenalkan fungsi register_api_field() untuk backwards compat, yang
memanggil _doing_it_wrong(). Namun, register_api_field() tidak akan pernah berkomitmen pada inti WordPress, jadi Anda harus memperbarui pemanggilan fungsi Anda.