Acabei de instalar o Wordpress 4.7. Uma das menções no anúncio é que ele possui uma API REST.
Meu entendimento é:
- O plugin da API REST do Wordpress não é mais necessário, porque supostamente já foi mesclado com o núcleo do Wordpress 4.7.
- A API REST do Wordpress é ativada por padrão
No entanto, notei que em uma instalação baunilha do Wordpress 4.7, nenhum dos pontos de extremidade parece funcionar (por exemplo http://examples.com/wp-json/wp/v2/posts
).
Como posso saber se a nova API REST está realmente ativada? A API REST pode ser ativada ou desativada com a interface do usuário do Wordpress vanilla ou devo instalar um plug-in de terceiros para fazer isso?
<link rel='https://api.w.org/' href='https://example.com/wp-json/' />
Parece apenas funcionar nos meus sites.grep -r "<link rel='https://api.w.org/'" .
nohtml
diretório, ele retornará um resultado no arquivo./wp-includes/rest-api.php
com este texto: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/">
Respostas:
4.7 tem ativado por padrão. A maneira mais fácil de verificar se está funcionando é apenas visitar o URL example.com/wp-json e você deve obter uma lista de pontos de extremidade registrados lá
Não há uma opção oficial para desativá-lo, pois (pelo menos houve uma conversa sobre o assunto, não tenho certeza se ele chegou à versão), algumas funcionalidades principais dependem disso.
As coisas mais óbvias para verificar se não está funcionando são as regras do htaccess, e você tem um diretório wp-json
fonte
/var/www/html
seus subdiretórios. Eu não parecem ter um.htaccess
arquivo (que não/var/www/html/wp-content/plugins/akismet/.htaccess
, que eu deveria ter um?AllowOverride All
na<Directory "/var/www/html">
seção/etc/httpd/conf/httpd.conf
. Por isso estava ignorando minhas alterações.htaccess
. Agora, com um link permanente diferente do PLain, os terminais da API REST funcionam.Eu também tinha pensado que a API REST estava desativada, mas fui enganado pela URL. Para ver o URL correto, procure uma linha parecida com a seguinte:
link rel = '
https://api.w.org/
' href = 'http://mysite?rest_route=/
' />. Portanto, usando http: // mysite? Rest_route = / como o prefixo resolveu meu problema. Por exemplo, para recuperar as postagens, basta digitar: http: // mysite? Rest_route = / wp / jsonNão encontrei na documentação que o parâmetro de consulta fosse necessário. Eu era o único?
fonte
www.example.com?rest_route=/wp/v2/posts
Vejo que você corrigiu o problema, mas deixou minha solução aqui, pois também funcionou para mim. Eu tive esse mesmo problema ao atualizar da beta15 para a API principal no wp 4.7 Acontece que eu tinha alguns plugins que estavam usando uma função obsoleta register_api_field, que mudei para register_rest_field de acordo com esta nota no changelog:
fonte
Se a API REST não estiver pronta para uso ou após uma nova instalação e depois de digitar
você precisaria simplesmente ativar seus "links permanentes" como post_name localizado:
Painel WP-> Configurações-> Permalinks
Ou, se você não deseja ativar os links permanentes, basta digitar:
Cara, eu gostaria que o WordPress atualizasse o manual do Rest para ser mais fácil de usar. Eu gosto da versão antiga do docs :)
fonte