Sim você pode. Basta adicionar o rest_route
parâmetro de consulta.
assim
https://wordpress.org/wp-json/
se tornaria
https://wordpress.org/?rest_route=/
Ou https://wordpress.org/wp-json/wp/v2/
se tornaria https://wordpress.org/?rest_route=/wp/v2
um exemplo mais completo.
Então, você está se perguntando como decidir qual usar? Não se preocupe mais, há uma função para isso:get_rest_url()
Outra opção é o fato de que, por padrão, existe um <link>
no cabeçalho que fornece a raiz da API.
<link rel='https://api.w.org/' href='https://wordpress.org/wp-json/' />
Portanto, no caso de você precisar descobrir isso, no lado do cliente, JS apenas use algo ao longo das linhas de
document.querySelectorAll('link[rel="https://api.w.org/"]')[0].getAttribute('href');
Portanto, basicamente, você não deve tomar a wp-json
parte como determinada (e codificá-la com código fixo), mas sempre construí-la dinamicamente usando get_rest_url()
a abordagem JS mencionada acima.
https://wordpress.org/?rest_route=SOMEPATH&value1=X&value2=Y
? Isso significa que eu preciso ter um condicional para detectar a estrutura do permalink e alterar a rota REST com base nisso./?rest_route=/?_jsonp=callBackfn
mas obtive o status 404./?rest_route=/&_jsonp=callBackfn
Você pode adicionar uma reescrita em seu servidor web.
Por exemplo, para nginx
fonte
O
rest_route
parâmetro query é o estiloUgly
(escolha de palavras do Wordpress que não é minha) do Permalink. Você pode alterar o estilo do permilink paraPost name
como ilustrado na captura de tela abaixo e awp-json
rota deve estar acessível no URL. É possível que outros estilos de permilink funcionem, masPost name
funcionou para mim e eu não explorei além dissofonte