Я только что установил Wordpress 4.7. Одним из упоминаний в объявлении является то, что в нем есть API REST.
Мое понимание таково:
- Плагин Wordpress REST API больше не нужен, потому что предположительно он уже объединен с ядром в Wordpress 4.7.
- Wordpress REST API включен по умолчанию
Тем не менее, я замечаю, что в обычной установке Wordpress 4.7 ни одна из конечных точек не работает (например http://examples.com/wp-json/wp/v2/posts
).
Как узнать, действительно ли новый REST API активирован? Можно ли включить или отключить REST API с помощью обычного пользовательского интерфейса Wordpress, или я должен установить для этого сторонний плагин?
<link rel='https://api.w.org/' href='https://example.com/wp-json/' />
Кажется, просто работать на моих сайтах.grep -r "<link rel='https://api.w.org/'" .
вhtml
каталоге, он возвращает один попадание в файл./wp-includes/rest-api.php
с этим текстом: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/">
Ответы:
4.7 по умолчанию включен Простой способ проверить, работает ли он, - это просто посетить URL-адрес example.com/wp-json, и вы должны получить там список зарегистрированных конечных точек.
Официальной опции отключить его нет, поскольку (по крайней мере, говорили об этом, не уверен, попал ли он в релиз), от этого зависит некоторая базовая функциональность.
Наиболее очевидные вещи, которые нужно проверить, если он не работает, - это ваши правила htaccess, и есть ли у вас каталог wp-json
источник
/var/www/html
или его подкаталогов. У меня, похоже, нет.htaccess
файла (кроме как/var/www/html/wp-content/plugins/akismet/.htaccess
, должен ли я его иметь?AllowOverride All
в<Directory "/var/www/html">
разделе/etc/httpd/conf/httpd.conf
. Вот почему он игнорировал мои изменения.htaccess
. Теперь с постоянной ссылкой, отличной от PLain, конечные точки REST API работают.Я 4.7 также думал, что REST API был отключен, но меня обманули по URL. Чтобы увидеть правильный URL, найдите строку, похожую на эту:
link rel = '
https://api.w.org/
' href = 'http://mysite?rest_route=/
' />. Итак, использование http: // mysite? Rest_route = / в качестве префикса решило мою проблему. Например, чтобы восстановить сообщения, достаточно набрать: http: // mysite? Rest_route = / wp / jsonЯ не смог найти в документации, что параметр запроса был необходим. Был ли я один?
источник
www.example.com?rest_route=/wp/v2/posts
Я вижу, вы исправили проблему, но оставили мое решение здесь, поскольку оно работало и для меня. У меня была такая же проблема при обновлении с бета15 до API ядра в wp 4.7 Оказывается, проблема заключалась в том, что у меня были некоторые плагины, которые использовали устаревшую функцию register_api_field, которую я изменил на register_rest_field согласно этой заметке в журнале изменений:
источник
Если REST API не работает "из коробки" или после новой установки и после ввода
тогда вам нужно будет просто активировать ваши "постоянные ссылки" в качестве расположенного на нем post_name:
WP Dashboard-> Настройки-> Постоянные ссылки
Или, если вы не хотите активировать постоянные ссылки, вы можете просто набрать:
Чувак, я бы хотел, чтобы WordPress обновил справочник Rest, чтобы сделать его более удобным для пользователей. Мне нравится старая версия документов :)
источник