La API JSON de WordPress devuelve la página del sitio normal en html. ¿Cómo hago para que me proporcione JSON como se supone que debe hacerlo?

4 minutos de lectura

avatar de usuario
n8bar

Por ejemplo, entrar http://mywordpresswebsite.example.com/?json=1 en el navegador carga el html del sitio principal, lo mismo que omitir la variable de cadena de consulta json: http://mywordpresswebsite.example.com/

La API JSON está activada. Intenté reactivar y desactivar, verificar la configuración del archivo .htaccess y desactivar todos los demás complementos. Ninguno de ellos ha hecho mucha diferencia hasta ahora.

AIT

Es probable que lo esté haciendo mal, pero cuando formulo mis solicitudes para una instalación de WordPress en http://www.example.com/ como esto:

http://www.example.com/index.php?rest_route=/my/rest/route/here

Termino recibiendo las respuestas adecuadas.

Me costó mucho resolver esto y terminé asimilando una URL con ese formato en el HTML que me devolvieron. Estaba esperando hacer solicitudes como http://www.example.com/wp_json/wp/v2/my/rest/route/here pero solo obtuve respuestas HTML.

(FWIW, vuelvo a publicar esto en todas las preguntas similares en la red de StackExchange. Administradores/modificadores: si esto va en contra de las reglas o se ve como spam de representantes, siéntase libre de eliminarlo. Esperaba ayudar a cualquier otra persona que tenga el mismo problema. soy, y también para saber qué es lo que he hecho mal y por qué.)

Tuve el mismo problema con mi página de prueba localhost y me preguntaba por qué mi ruta funcionó la semana pasada y no estaba accesible esta semana.

Breve explicación

Después de algunas pruebas y mucha frustración, pude usar la ruta API REST nuevamente siguiendo la documentación de wordpress sobre rutas-vs-puntos finales con “Bonitos enlaces permanentes” y Enlaces permanentes “feos”

explicación más larga

Supongo que en mi caso se basó en la reinstalación de mi base de datos MySQL. Al instalar la nueva base de datos, mi configuración anterior se restableció a la instalación estándar de wordpress con enlaces permanentes como “simple”, que es un enlace permanente “feo”. Esa es la razón por la cual la respuesta de Mattygabe me funcionó después de la reinstalación de la base de datos.

Pero con esta solución, tuve un problema con el valor de mi filtro y, por lo tanto, encontré la solución con “premalinks bonitos” y cambié mis enlaces permanentes a “Mes y nombre”, como se muestra en la imagen. Después de este cambio, pude acceder a mi API REST a través de la ruta deseada.

ingrese la descripción de la imagen aquí

También podría haber algunas dificultades con las API REST relacionadas con los siguientes ejemplos:

  • usando “wp” dentro de la ruta REST
  • si trabaja en complementos, que deben compartirse, tenga en cuenta que algunos complementos pueden restringir el acceso REST, por ejemplo iThemes Seguridad

  • Esto es cierto, lo que hace que sea un poco desafiante desarrollar características que se basen en solicitudes de API REST asíncronas en el lado del cliente. Al menos hay una verificación que se puede usar para determinar si existe una estructura de enlace permanente: wordpress.org/support/article/using-permalinks/…

    – csalmeida

    14 de agosto de 2021 a las 10:55

Ok, entonces el nuevo punto final para WordPress 4.7 es mywordpresswebsite.example.com/index.php/wp-json. Es parte de WordPress Core a partir de 4.7 y ya no es un complemento, no hay nada que activar. Gracias, Mark Kaplun.

  • Todavía estoy recuperando HTML. Incluso después de usar el ejemplo que proporcionó. ¿Alguna sugerencia?

    –Scott Nimrod

    2 de noviembre de 2017 a las 11:35

  • ¿Estás seguro de que la URL es correcta? http://example.com/wordpressInstallFolderIfYouHaveOne/index.php/wp-json Si eso no funciona, asegúrese de estar en wordpress 4.7 o posterior actualizando wordpress.

    – n8bar

    7 de noviembre de 2017 a las 16:52


También experimenté este problema. Instalé el complemento WP API y luego me di cuenta de que no lo necesitaba, así que lo desactivé y lo eliminé. Luego probé una solicitud GET para https://ejemplo.com/wp-json/wp/v2/posts y recibí el HTML de mi sitio de wordpress.

Para solucionar esto, terminé desactivando todos los complementos y luego comencé a recibir la respuesta JSON de https://ejemplo.com/wp-json/wp/v2/posts así que pasé por la reactivación de cada complemento y, al final, todos mis complementos están activos y el punto final responde con JSON.

avatar de usuario
Natri ingenio

Cambié los enlaces permanentes (Configuración => Enlaces permanentes)
ingrese la descripción de la imagen aquí

avatar de usuario
ishq

Tuve un problema al devolver la página html en lugar de la respuesta JSON en WordPress 5.3 y se resolvió cuando cambié el enlace permanente como nombre de publicación de simple

¿Ha sido útil esta solución?

La API JSON de WordPress devuelve la página del sitio normal en html. ¿Cómo hago para que me proporcione JSON como se supone que debe hacerlo?

4 minutos de lectura

avatar de usuario
n8bar

Por ejemplo, entrar http://mywordpresswebsite.example.com/?json=1 en el navegador carga el html del sitio principal, lo mismo que omitir la variable de cadena de consulta json: http://mywordpresswebsite.example.com/

La API JSON está activada. Intenté reactivar y desactivar, verificar la configuración del archivo .htaccess y desactivar todos los demás complementos. Ninguno de ellos ha hecho mucha diferencia hasta ahora.

AIT

Es probable que lo esté haciendo mal, pero cuando formulo mis solicitudes para una instalación de WordPress en http://www.example.com/ como esto:

http://www.example.com/index.php?rest_route=/my/rest/route/here

Termino recibiendo las respuestas adecuadas.

Me costó mucho resolver esto y terminé asimilando una URL con ese formato en el HTML que me devolvieron. Estaba esperando hacer solicitudes como http://www.example.com/wp_json/wp/v2/my/rest/route/here pero solo obtuve respuestas HTML.

(FWIW, vuelvo a publicar esto en todas las preguntas similares en la red de StackExchange. Administradores/modificadores: si esto va en contra de las reglas o se ve como spam de representantes, siéntase libre de eliminarlo. Esperaba ayudar a cualquier otra persona que tenga el mismo problema. soy, y también para saber qué es lo que he hecho mal y por qué.)

Tuve el mismo problema con mi página de prueba localhost y me preguntaba por qué mi ruta funcionó la semana pasada y no estaba accesible esta semana.

Breve explicación

Después de algunas pruebas y mucha frustración, pude usar la ruta API REST nuevamente siguiendo la documentación de wordpress sobre rutas-vs-puntos finales con “Bonitos enlaces permanentes” y Enlaces permanentes “feos”

explicación más larga

Supongo que en mi caso se basó en la reinstalación de mi base de datos MySQL. Al instalar la nueva base de datos, mi configuración anterior se restableció a la instalación estándar de wordpress con enlaces permanentes como “simple”, que es un enlace permanente “feo”. Esa es la razón por la cual la respuesta de Mattygabe me funcionó después de la reinstalación de la base de datos.

Pero con esta solución, tuve un problema con el valor de mi filtro y, por lo tanto, encontré la solución con “premalinks bonitos” y cambié mis enlaces permanentes a “Mes y nombre”, como se muestra en la imagen. Después de este cambio, pude acceder a mi API REST a través de la ruta deseada.

ingrese la descripción de la imagen aquí

También podría haber algunas dificultades con las API REST relacionadas con los siguientes ejemplos:

  • usando “wp” dentro de la ruta REST
  • si trabaja en complementos, que deben compartirse, tenga en cuenta que algunos complementos pueden restringir el acceso REST, por ejemplo iThemes Seguridad

  • Esto es cierto, lo que hace que sea un poco desafiante desarrollar características que se basen en solicitudes de API REST asíncronas en el lado del cliente. Al menos hay una verificación que se puede usar para determinar si existe una estructura de enlace permanente: wordpress.org/support/article/using-permalinks/…

    – csalmeida

    14 de agosto de 2021 a las 10:55

Ok, entonces el nuevo punto final para WordPress 4.7 es mywordpresswebsite.example.com/index.php/wp-json. Es parte de WordPress Core a partir de 4.7 y ya no es un complemento, no hay nada que activar. Gracias, Mark Kaplun.

  • Todavía estoy recuperando HTML. Incluso después de usar el ejemplo que proporcionó. ¿Alguna sugerencia?

    –Scott Nimrod

    2 de noviembre de 2017 a las 11:35

  • ¿Estás seguro de que la URL es correcta? http://example.com/wordpressInstallFolderIfYouHaveOne/index.php/wp-json Si eso no funciona, asegúrese de estar en wordpress 4.7 o posterior actualizando wordpress.

    – n8bar

    7 de noviembre de 2017 a las 16:52


También experimenté este problema. Instalé el complemento WP API y luego me di cuenta de que no lo necesitaba, así que lo desactivé y lo eliminé. Luego probé una solicitud GET para https://ejemplo.com/wp-json/wp/v2/posts y recibí el HTML de mi sitio de wordpress.

Para solucionar esto, terminé desactivando todos los complementos y luego comencé a recibir la respuesta JSON de https://ejemplo.com/wp-json/wp/v2/posts así que pasé por la reactivación de cada complemento y, al final, todos mis complementos están activos y el punto final responde con JSON.

avatar de usuario
Natri ingenio

Cambié los enlaces permanentes (Configuración => Enlaces permanentes)
ingrese la descripción de la imagen aquí

avatar de usuario
ishq

Tuve un problema al devolver la página html en lugar de la respuesta JSON en WordPress 5.3 y se resolvió cuando cambié el enlace permanente como nombre de publicación de simple

¿Ha sido útil esta solución?