Es un error muy común no poder acceder a la API Rest de WordPress nada más instalarlo, devolviendo el error 404 cuando intentamos acceder a la URL de la API Rest (https://Tu_Dominio/wp-json/wp/v2/posts).
¿Qué es y para qué sirve la API Rest de WordPress?
La API Rest de WordPress es una interfaz de programación de aplicaciones que permite a los desarrolladores acceder y manipular datos de WordPress a través de solicitudes HTTP.
La API Rest de WordPress proporciona un conjunto de «endpoints» que permiten a los desarrolladores acceder a los datos de WordPress de forma programática y permite ejecutar funciones dentro de WordPress, mediante código, tales como publicaciones o actualizaciones de artículos, páginas, administrar usuarios, taxonomías, etc.
Como medida de seguridad, la API Rest de WordPress también proporciona un sistema de autenticación que permite a los desarrolladores restringir el acceso a los endpoints de la API a aquellos usuarios que hayan iniciado sesión en WordPress.
Algunos plugins de WordPress no funcionarán correctamente si no está habilitada la API Rest.
¿Por qué puede fallar el acceso a la API Rest de WordPress?
Las causas más comunes del problema de acceso a la API Rest son dos:
- La URL está siendo bloqueada por algún plugin de seguridad
- La URL está siendo bloqueada por algún firewall
- WordPress no está configurado correctamente y esta es la causa más común
¿Cómo habilitar el acceso a la API Rest de WordPress?
Lo que a mi me ocurre casi el 100% de las veces, es que nada más instalar WordPress hay que configurar la estructura de enlaces permanentes. Si no se hace, el acceso a la API Rest falla.
Para configurar los enlaces permanentes de WordPress, accedemos a la URL de administración de WordPress y vamos al menú Ajustes –> Enlaces permanentes.
Una vez allí, elegimos la estructura que nos interesa para nuestro sitio. Por ejemplo:
Cuando hayamos guardado los cambios, veremos que el propio WordPress ha modificado el fichero .htaccess. A modo de ejemplo:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
El acceso a la URL de la API Rest ya debería funcionar correctamente (https://Tu_Dominio/wp-json/wp/v2/posts). Si no es así, nos toca investigar en los logs del servidor WEB o ir desactivando los plugins que tenemos instalados por si alguno está entrando en conflicto.
Aprende a configurar WordPress desde cero
Mi pasión por la tecnología me lleva constantemente a explorar las últimas tendencias y aplicaciones, buscando siempre formas de implementar soluciones innovadoras que mejoren la eficiencia. En puerto53.com comparto contenido valioso para ayudar a otros profesionales y entusiastas de la informática a navegar y dominar el complejo mundo de la tecnología. Mi especialidad en Linux RedHat.
Más sobre mí en el este enlace,