He estado usando el complemento WP-API de WordPress REST durante meses mientras desarrollaba localmente con XAMPP. Recientemente, migré mi sitio a una instancia EC2 y todo funciona bien, excepto que ahora obtengo un 404 con el siguiente mensaje cada vez que intento acceder a cualquier punto final de la API:
The requested URL /wordpress/wp-json/ was not found on this server
Los enlaces permanentes permalinks están habilitados con la siguiente estructura http://…/wordpress/sample-post/que funciona bien cuando se navega a una publicación específica en el navegador.
Aquí hay algunos detalles sobre mi configuración:
- WordPress No Multisite
- WP REST API plugin 2.0-beta9
Cualquier ayuda sería muy apreciada ya que he pasado por SO y los foros de soporte de WP durante varias horas y no tengo ideas. ¡Gracias!
SOLUCIÓN a Error 404 de la API REST:
También enfrenté un problema similar en un proyecto local. Usé index.php
después de la URL de mi proyecto y funcionó.
http://localhost/myproject/index.php/wp-json/wp/v2/posts
Si muestra un error 404, primero actualice los enlaces permanentes (consulte la sección «La navegación paginada no funciona»
Si funciona, tal vez necesite habilitar mod_rewrite
, en ubuntu:
a2enmod rewrite
sudo service apache2 restart
Instalación
¡La API REST está incluida en WordPress 4.7! Ya no se requieren complementos, solo instale la última versión de WordPress y estará listo para comenzar.
Si estás antes de 4.7:
- Descargue el complemento desde aquí: http://v2.wp-api.org/
- instalarlo y activarlo.
Uso
Para obtener todas las publicaciones:
www.mysite.com/wp-json/wp/v2/posts
Para la funcionalidad de búsqueda, la búsqueda de una publicación de prueba se ve así:
/wp-json/wp/v2/posts?filter[s]=test
2 comentarios
Edu · 14 diciembre, 2020 a las 3:32 pm
Tuve este problema con la última versión de WordPress 4.7+. En mi caso, la API REST solo funcionó después de que cambié la configuración de enlaces permanentes a algo que no sea «Plain», que era la configuración predeterminada para mi instalación.
Andres · 14 diciembre, 2020 a las 3:33 pm
18
Resultó ser un problema con la configuración de Apache.
Primero, eliminé el .htaccessarchivo en el directorio raíz de wordpress.
A continuación, navegué /etc/apache2/sites-enabledy abrí000-default
Todas las AllowOverridevariables se establecieron en Ninguno, que reemplacé por All.
¡Eso hizo el truco!