Sí tu puedes. Simplemente agregue el rest_routeparámetro de consulta.
Entonces
https://wordpress.org/wp-json/
se convertiría
https://wordpress.org/?rest_route=/
O https://wordpress.org/wp-json/wp/v2/se convertiría https://wordpress.org/?rest_route=/wp/v2en darle un ejemplo más completo.
¿Entonces te preguntas cómo decidir cuál usar? No te preocupes más, hay una función para eso:get_rest_url()
Otra opción es el hecho de que, de manera predeterminada, hay un <link>encabezado en el encabezado que le proporciona la raíz API.
<link rel='https://api.w.org/' href='https://wordpress.org/wp-json/' />
Entonces, en caso de que necesite resolverlo desde el lado del cliente, JS simplemente use algo en la línea de
document.querySelectorAll('link[rel="https://api.w.org/"]')[0].getAttribute('href');
Así que, básicamente, no debe tomar la wp-jsonparte como se indica (y codificarla) sino construirla dinámicamente utilizando get_rest_url()el enfoque JS mencionado anteriormente.
https://wordpress.org/?rest_route=SOMEPATH&value1=X&value2=Y? Esto significa que necesito tener un condicional para detectar la estructura de enlace permanente y cambiar la ruta REST en función de eso./?rest_route=/?_jsonp=callBackfnpero obtuve un estado 404./?rest_route=/&_jsonp=callBackfnPuede agregar una reescritura en su servidor web.
Por ejemplo, para nginx
fuente
El
rest_routeparámetro de consulta es elUglyestilo de Permalink (la elección de palabras de Wordpress no es mío). Puede cambiar el estilo de permilinkPost namecomo se ilustra en la siguiente captura de pantalla y lawp-jsonruta debe ser accesible en la URL. Es posible que otros de estos estilos de permilink funcionen, peroPost namefuncionó para mí y no exploré más allá de esofuente