Acabo de instalar Wordpress 4.7. Una de las menciones en el anuncio es que cuenta con una API REST.
Mi entendimiento es:
- El complemento API de Wordpress REST ya no es necesario, porque supuestamente ya se ha fusionado con el núcleo en Wordpress 4.7.
- La API REST de Wordpress está habilitada de forma predeterminada
Sin embargo, noto que en una instalación de Wordpress 4.7 de vainilla, ninguno de los puntos finales parece funcionar (por ejemplo http://examples.com/wp-json/wp/v2/posts
).
¿Cómo puedo saber si la nueva API REST está realmente activada? ¿Se puede habilitar o deshabilitar la API REST con la interfaz de usuario de Wordpress de vanilla, o debo instalar un complemento de terceros para hacerlo?
<link rel='https://api.w.org/' href='https://example.com/wp-json/' />
Parece que solo funciona en mis sitios.grep -r "<link rel='https://api.w.org/'" .
en elhtml
directorio, devuelve un hit en el archivo./wp-includes/rest-api.php
con 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/">
Respuestas:
4.7 lo tiene habilitado por defecto. La manera fácil de verificar si está funcionando es visitar la URL de example.com/wp-json, y debe obtener una lista de los puntos finales registrados allí.
No hay una opción oficial para deshabilitarlo ya que (al menos se habló de que no estaba seguro de si apareció en el lanzamiento), algunas funciones principales dependen de ello.
Las cosas más obvias para verificar si no funciona son las reglas de htaccess, y ¿tiene un directorio wp-json?
fuente
/var/www/html
o sus subdirectorios. Parece que no tengo un.htaccess
archivo (aparte de/var/www/html/wp-content/plugins/akismet/.htaccess
, ¿debería tener uno?AllowOverride All
en la<Directory "/var/www/html">
sección de/etc/httpd/conf/httpd.conf
. Es por eso que estaba ignorando mis cambios.htaccess
. Ahora con un enlace permanente distinto de PLain, los puntos finales de la API REST funcionan.Tenía 4.7 también pensé que la API REST estaba deshabilitada, pero la URL me engañó. Para ver la URL correcta, busque una línea similar a esa:
enlace rel = '
https://api.w.org/
' href = 'http://mysite?rest_route=/
' />. Entonces, usando http: // mysite? Rest_route = / como el prefijo resolvió mi problema. Por ejemplo, para recuperar las publicaciones es suficiente escribir: http: // mysite? Rest_route = / wp / jsonNo pude encontrar en la documentación que se necesitaba el parámetro de consulta. ¿Era yo el único?
fuente
www.example.com?rest_route=/wp/v2/posts
Veo que ha solucionado el problema, pero dejó mi solución aquí, ya que también funcionó para mí. Tuve este mismo problema al actualizar de beta15 a la API principal en wp 4.7 Resulta que el problema era que tenía algunos complementos que usaban una función obsoleta register_api_field que cambié a register_rest_field de acuerdo con esta nota en el registro de cambios:
fuente
Si la API REST no funciona de forma inmediata o después de una instalación nueva y después de escribir
entonces deberías simplemente activar tus "enlaces permanentes" como post_name ubicado:
Panel de WP-> Configuración-> Enlaces permanentes
O si no desea activar los enlaces permanentes, simplemente puede escribir:
Hombre, desearía que WordPress actualizara su manual Rest para que fuera más fácil de usar. Me gusta la versión anterior de documentos :)
fuente