rest-api – Entendiendo SHORTINIT con WordPress 5

Pregunta:

Lo que estoy tratando de lograr

Estoy pensando en usar WordPress desacoplado, y la mayoría de los tutoriales y guías detallan el uso de la API Rest . Recientemente, descubrí la opción SHORTINIT para cargar una instancia mínima de WordPress. Casi no hay documentación y muy pocas preguntas sobre su uso, sin embargo, estoy interesado en hacer uso de ella.

Que he probado

Hasta ahora, he configurado un archivo php de prueba simple en el directorio raíz:

define('WP_DEBUG', true);
define('WP_DEBUG_DISPLAY', true);
//define('DOING_AJAX', true);
define('SHORTINIT', true);

require(dirname( __FILE__ ) . '/wp-load.php');

require( ABSPATH . WPINC . '/post.php');

die(json_encode(get_posts(array(
   'numberposts' => 10,
   'post_type' => 'post'
))));

Que falló porque no puedo acceder a la clase WP_Query. Después de leer algunos ejemplos dispersos, agregué gradualmente más require , pero nada parecía funcionar.

Ahora tomé una copia de wp-settings y eliminé cosas como class-wp-rest*.php o referencias a los temas. La intención es dejarme con el núcleo mínimo absoluto, con la funcionalidad suficiente para obtener los datos que necesito (publicaciones, campos personalizados). Mi código ahora se ejecuta y toma 1/3 del tiempo para cargar mis publicaciones en comparación con el punto final /wp-json/wp/v2/posts .

Mi pregunta

Me estoy adelantando a las personas que me dicen que solo use la API REST, pero me gustaría saber si hay documentación o ejemplos para crear una URL de punto final que haga uso de SHORTINIT , explicando qué componentes principales necesito.

Respuesta:

Puede probar si la solicitud llega a través del resto de API antes de habilitar SHORTINIT

Algo como…

if (strpos($_SERVER[ 'REQUEST_URI' ], '/wp-json/') !== false) {
    define('SHORTINIT', true);
}

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top

web tasarım