Saya baru saja menginstal Wordpress 4.7. Salah satu yang disebutkan dalam pengumuman adalah fitur REST API.
Pemahaman saya adalah:
- Plugin Wordpress REST API tidak diperlukan lagi, karena seandainya itu telah digabungkan dengan inti di Wordpress 4.7.
- API REST Wordpress diaktifkan secara default
Namun, saya perhatikan bahwa dalam instalasi vanilla Wordpress 4.7, tidak ada titik akhir yang berfungsi (misalnya http://examples.com/wp-json/wp/v2/posts
).
Bagaimana saya bisa tahu jika REST API baru benar-benar diaktifkan? Dapatkah REST API diaktifkan atau dinonaktifkan dengan vanilla Wordpress UI, atau haruskah saya menginstal plugin pihak ketiga untuk melakukannya?
<link rel='https://api.w.org/' href='https://example.com/wp-json/' />
Tampaknya hanya berfungsi di situs saya.grep -r "<link rel='https://api.w.org/'" .
dalamhtml
direktori, ia mengembalikan satu hit di file./wp-includes/rest-api.php
dengan teks ini:echo "<link rel='https://api.w.org/' href='" . esc_url( $api_root ) . "' />\n";
<link href="http://example.com/wp-json/" rel="https://api.w.org/">
Jawaban:
4.7 mengaktifkannya secara default. Cara mudah untuk memeriksa apakah itu berfungsi adalah dengan mengunjungi url example.com/wp-json, dan Anda harus mendapatkan daftar titik akhir yang terdaftar di sana
Tidak ada opsi resmi untuk menonaktifkannya (setidaknya ada pembicaraan tentang itu tidak yakin apakah itu ada dalam rilis), beberapa fungsionalitas inti tergantung padanya.
Hal yang paling jelas untuk diperiksa jika tidak berfungsi adalah aturan htaccess Anda, dan apakah Anda memiliki direktori wp-json
sumber
/var/www/html
atau subdirektori-nya. Sepertinya saya tidak punya.htaccess
file (selain/var/www/html/wp-content/plugins/akismet/.htaccess
, haruskah saya punya file ?AllowOverride All
di<Directory "/var/www/html">
bagian/etc/httpd/conf/httpd.conf
. Karena itulah ia mengabaikan perubahan saya.htaccess
. Sekarang dengan permalink selain PLain, titik akhir REST API berfungsi.4,7 saya juga berpikir bahwa REST API dinonaktifkan, tetapi saya diakali oleh URL. Untuk melihat URL yang benar, cari garis yang terlihat seperti itu:
tautan rel = '
https://api.w.org/
' href = 'http://mysite?rest_route=/
' />. Jadi, menggunakan http: // mysite? Rest_route = / sebagai awalan menyelesaikan masalah saya. Misalnya untuk memulihkan posting sudah cukup untuk mengetik: http: // mysite? Rest_route = / wp / jsonSaya tidak dapat menemukan pada dokumentasi bahwa param permintaan diperlukan. Apakah saya satu-satunya?
sumber
www.example.com?rest_route=/wp/v2/posts
Saya melihat Anda telah memperbaiki masalah tetapi meninggalkan solusi saya di sini karena itu bekerja untuk saya juga. Saya memiliki masalah yang sama ketika memperbarui dari beta15 ke api inti di wp 4.7 Ternyata masalah adalah bahwa saya memiliki beberapa plugin yang menggunakan fungsi register_api_field yang sudah tidak digunakan yang saya ubah menjadi register_rest_field sesuai dengan catatan di changelog ini:
sumber
Jika REST API tidak berfungsi di luar kotak atau setelah pemasangan baru dan setelah mengetik
maka Anda harus cukup mengaktifkan "permalinks" Anda sebagai post_name berada:
WP Dashboard-> Pengaturan-> Permalinks
Atau jika Anda tidak ingin mengaktifkan permalink, Anda cukup mengetik:
Sobat, saya berharap WordPress akan memperbarui buku pegangan Istirahat mereka agar lebih ramah pengguna. Saya suka versi lama dokumen :)
sumber