С API Rest некоторые фильтры доступны только для зарегистрированных пользователей:
Кроме того, доступны следующие, когда проверка подлинности как пользователь с edit_posts
:
[...]
category__not_in
Это взято из Rest API 1.0 documentation.
Что это означает, что вам необходимо войти в систему как редактор (пользователь с возможностью edit_posts
). Для делать это в чистом виде, я предлагаю создать минимальную роль для пользователя REST только с возможностями вам нужно, что-то вроде этого:
add_role(
'rest_user',
__('REST User'),
array(
'read' => true,
'edit_posts' => true,
'delete_posts' => false
)
);
Затем сделайте запрос в проверке подлинности пользователя следующий:
$response = wp_remote_request('http://example.com/wp-json/wp/v2/posts?filter[category__not_in]=10', array(
'method' => 'GET',
'headers' => array(
'Authorization' => 'Basic ' . base64_encode('login:password')
)
));
Благодаря this article вы поделились, кажется, вам нужно объявить имя фильтра, как вар запроса, поэтому в данном случае:
add_filter('query_vars', function($query_vars) {
$query_vars[] = 'category__not_in';
return $query_vars;
});
Какой смысл, потому что Wordpress является вызывая какой-либо параметр GET, который не объявляется, хотя я не понимаю, почему все фильтры не объявлены в качестве запросов внутри ядра WP ...
не можете обновить до 4.4? API-интерфейс Rest теперь является частью ядра. – vard
@vard О, я уже обновил до 4.4, но я думаю, что он все еще нуждается в плагине. – hrsetyono
Mmh это не должно быть, есть ли у вас какие-либо ошибки, когда вы деактивируете его и попытаетесь использовать остальные api? (Я не уверен, что по умолчанию он использует версию API 2.0 или 1.0, но ее можно установить через конфигурацию) – vard