¿Qué necesitas saber sobre la nueva API REST de WordPress?

WordPress 4.4 hizo el resto API de WordPress del núcleo. En este artículo, explicaré por qué este desarrollo es enorme para WordPress (y para los autores de temas y complementos en general) y le mostraré cómo usarlo para simplificar la comunicación entre WordPress y otras aplicaciones. Además, WordPress REST API hace posible que los sitios web de WordPress eliminen la interfaz de administración de WordPress predeterminada para proporcionar un administrador o una experiencia de contenido totalmente personalizado utilizando una pila tecnológica diversa. Calypso – Aplicación de escritorio WordPress – es un buen ejemplo a este respecto. Calypso se crea utilizando una sola aplicación JavaScript que utiliza la API REST de WordPress para comunicarse entre WordPress.com y Nucle.
Debido a que WordPress REST API es ahora una parte integral del núcleo de WordPress, es importante que los desarrolladores comprendan cómo las nuevas posibilidades se abren para interactuar con WordPress. Entonces, en esta presentación y tutorial de la API REST de WordPress, presentaré los elementos básicos de la API REST WP y le mostraré cómo puede usarlo para crear un widget (complemento) que muestre las últimas publicaciones de conocimiento heroico. Tipos de publicaciones personalizadas básicas. Una primera API REST de WordPress antes de ver cómo usar la API REST WordPress para crear un widget (complemento), primero comprenda el término un poco mejor.
Entonces, ¿qué significa API? API significa interfaz del programa de aplicación. En los términos más simples, es un medio de comunicación entre dos aplicaciones diferentes. Un ejemplo común de API en acción es el mazo de tweet que muchos sitios web muestran. Mostrar este mazo de tweet se hace posible a través de una API en la que el sitio web solo extrae datos de Twitter y los muestra. ¿Pero descansar? El resto es la abreviatura de la transferencia de estado representativo. El resto es un estilo arquitectónico basado en HTML para construir las API. Una arquitectura RESTful utiliza solicitudes HTTP para publicar, leer, actualizar y eliminar datos entre dos fuentes. Entonces, cuando hablamos de un descanso, nos referimos a una API que utiliza métodos HTML para comunicarse. ¿Y JSON? La API REST WordPress tiene el mismo formato que la API REST JSON WordPress. JSON (o notación de objeto JavaScript) es un formato mínimo de intercambio de datos, basado en el texto, utilizado para hacer un intercambio de datos suave entre diferentes plataformas (incluso si las plataformas usan diferentes idiomas). JSON es una alternativa fácil a las soluciones basadas en XML, lo que lo hace perfecto para aplicaciones móviles con limitaciones de ancho de banda. ¿Por qué usar la API REST WordPress?
Bueno … el resto WordPress API te permite hacer más con WordPress. P.ej:
Escriba aplicaciones en cualquier idioma que conozca y haga que interactúe con un sitio de WordPress (los únicos 2 requisitos son para su idioma de aplicación para usar métodos HTML y poder jugar JSON)
Diseñe la administración y el contenido totalmente personalizados
Desarrolle aplicaciones de una página en WordPress y mucho más. Es casi imposible enumerar todas las aplicaciones/interfaces/experiencias potenciales que se pueden crear con la API REST. El manual de API REST de WordPress diga con razón:
Nuestra imaginación es el único límite de lo que se puede hacer con la API REST WordPress. La conclusión es que si desea una forma estructurada, extensible y simple de ingresar y salir de los datos de WordPress a través de HTTP, probablemente desee usar el resto. Pero sé que la implementación siempre es mucho más difícil que comprender la teoría. Así que veamos un tutorial rápido sobre cómo puede usar la API REST WordPress para crear un widget personalizado (complemento). Un tutorial rápido sobre cómo usar la API REST WordPress si tiene uno de nuestros productos de base de conocimiento, dichos artículos de asistencia. Sin embargo, el uso de estos productos no es necesario para seguir los principios de este tutorial, tenga en cuenta que deberá adaptar cualquier código a su configuración.
¿Estás listo con la configuración local? ¡Eso es genial! Ahora lo que haremos es crear otro sitio web en otro servidor. Entonces, ¿por qué creamos este segundo sitio web? Hacemos esto porque queremos implementar la API REST WordPress para comunicarse con este segundo sitio web y, como saben ahora, la API REST WordPress se trata de hacer que las conversaciones se realicen. Por lo tanto, utilizaremos la API REST de WordPress para que los dos sitios web hablen entre sí e intercambien datos. Y el objetivo final del tutorial es: elija los últimos artículos publicados desde la base de conocimiento en el sitio web del Centro de Ayuda y muestrelos en un widget en la barra lateral del nuevo sitio web. De este artículo, el sitio, el sitio. Web of the Aid Center que contiene todos los artículos en la base de conocimiento se llamará sitio “local”, y el nuevo sitio web que mostrará el widget será el sitio “externo”. En este momento, supongo que tiene 1) sitio web “local” del centro de ayuda y 2) un nuevo sitio web “externo” configurado en otro servidor. Y al final del tutorial, habríamos mostrado con éxito una lista de artículos de la base de conocimiento en el sitio web “local” en el nuevo sitio “externo” (a través de WordPress REST) ​​utilizando un widget personalizado (complemento). Con eso, estamos listos para comenzar:
Paso #1: Comience copiando el siguiente código estándar en un nuevo archivo .php y guárdelo en la carpeta de complementos en su sitio “externo”. Consulte el código completo para esta API de tutorial de descanso de WordPress aquí. /**
* Widget de ejemplo de Herotemes
*/
La clase my_widget se extiende wp_widget {
// Configurar widget
Función pública __construct () {
$ widget_ops = array (
‘ClassName’ => ‘REST-API-WIDGET’, ‘Descripción’ => ‘Este ejemplo proporciona un marco de cómo widget’
);
Parent :: __ construct (‘my_widget’, ‘mi widget’, $ widget_ops);
}
/**
* Emite el contenido del widget
* @param array $ args
* @param array $ instancia
*/
Widget de función pública ($ args, $ instancia) {
// emite el contenido del widget
echo $ args [‘antes_widget’];
If (! Vacía ($ instancia [‘title’])) {
echo $ args [‘antes de_itle’]. APLICE_FILTERS (‘widget_title’, $ instancia [‘title’], $ instancia, $ this-> id_base). $ args [‘after_title’];
}
// El contenido principal del widget va aquí
echo $ args [‘after_widget’];
}
/**
* Emite el formulario de opciones en el administrador
* @param array $ instancia el widget
*/
Formulario de función pública ($ instancia) {
// emite el formulario de opciones en el administrador
$ Title = (! Vacía ($ instancia [‘title’))? $ instancia [‘title’]: ”; ?>
<etiqueta for = " get_field_name (‘title’);?>”> Título:
<input class = "wideFat" id = " get_field_id (‘title’);?>”
Name = ” get_field_name (‘title’);?>”
Type = “text” value = “” />
<? Php
}
}
add_action ('widgets_init', function () {registro_widget ('my_widget');});
Este código crea un widget muy simple que mostrará un título que elija. Al agregar el código a la parte superior de la plantilla y guardarlo en el directorio de arado, lo creé como un complemento (en lugar de agregar el código al archivo de función). Es algo pequeño, pero crear un widget como complemento en este estilo le permite iniciarlo y desactivarlo y también reutilizarlo en otros temas más adelante, si lo desea, sin tener que copiar y pegarse. Una vez instalado y activado, tendrá un nuevo widget en el área de widget del tablero: Paso #2: Use la API REST WordPress para tomar artículos recientes de la base de conocimiento
Debido a que no desea editar o eliminar nada en este desarrollo, solo nos centraremos en la función widget (). Este es el lugar donde el contenido en widget se envía al sitio web "externo". Para "obtener" la lista de artículos recientes de la base de conocimiento en el sitio "local", hay algunas cosas que necesitamos saber:
La ruta básica de la API (qué API usar en su sitio, en nuestro caso, la última API WP)
La ruta usada (WP API tiene varias rutas para diferentes conjuntos de datos y operaciones)
Punto final utilizado (qué acción se debe realizar)

Parámetros (datos asociados con la aplicación)
El camino básico de la API es siempre:
Json/wp/v2/y entonces la API API se convierte en: http://example.com/json/wp/v2/ (http://example.com es su sitio web “local”) La ruta utilizada es: json/wp /V2/publicaciones/Acerca de los puntos finales: esta ruta en realidad tiene tres puntos finales que están diferenciados por los métodos HTTP. Estos puntos finales son:
LOGRAR
PONER
RETIRAR
En este ejemplo, elegirá el punto final, para que pueda hacerse cargo (o “obtener”) una lista de las últimas publicaciones en el sitio “local”. Por lo tanto, la primera línea de código que interactúa con el resto será: $ respuesta = wp_remote_get (‘http://produce-website.com/wp-json/wp/v2/posts/’); Siguiente, debe verificar si debe verificar si Se devuelven los errores: if (is_wp_error ($ respuesta)) {

devolver;
}
Todo lo que hace este código es verificar qué respuesta se devuelve. Si la respuesta devuelve algunas publicaciones, entonces no hay error. La última parte de esta sección es:
$ POSTS = JSON_DECODE (WP_REMOTE_RETRIEVE_BODY ($ respuesta));
if (vacía ($ publicaciones)) {
devolver;
}
$ La respuesta es una cadena codificada JSON con datos posteriores. Entonces, todo lo que hace aquí es decodificarlo para que pueda eliminarse. Nuevamente, agregue un cheque adicional para asegurarse de que $ publicaciones no esté vacía. Si es así, no se devuelve nada. Entonces, en este momento, se ha comunicado con éxito con su sitio “local” utilizando la API. Esta implementación lo deja con una lista de publicaciones que se mostrarán. La siguiente etapa es mostrarlos de manera efectiva en su widget en el sitio “externo”. Paso #3: Muestre las últimas publicaciones en el sitio “externo” agregando el siguiente código: if (! Vacía ($ publicaciones)) {
echo ‘
‘;
Foreach ($ publicaciones como $ post) {
echo ‘
enlace.’ “> ‘. $ post-> title-> renderizado. ‘
‘;
}
echo ‘
‘;
} El código para el widget completo debe verse así: /**
* Herotemes Rest API Widget
*/
Clase REST_PI_WIDGET extiende wp_widget {
// Configurar widget
Función pública __construct () {
$ widget_ops = array (‘className’ => ‘REST-WIDGET’, ‘Descripción’ => ‘Un widget API que extrae publicaciones de un sitio web diferente’
);
Parent :: __ construct (‘REST_PI_WIDGET’, ‘REST widget’, $ widget_ops);
}
/**
* Emite el contenido del widget
*
* @param array $ args
* @param array $ instancia
*/
Widget de función pública ($ args, $ instancia) {
// ¡Cambie esta URL al punto final WP-API para su sitio!
$ respuesta = wp_remote_get (‘https://example.com/wp-json/wp/v2/ht-kb/’);
If (is_wp_error ($ respuesta)) {
devolver;
}
$ POSTS = JSON_DECODE (WP_REMOTE_RETRIEVE_BODY ($ respuesta));
if (vacía ($ publicaciones)) {
devolver;
}
echo $ args [‘antes_widget’];
If (! Vacía ($ instancia [‘title’])) {
echo $ args [‘antes de_itle’]. APLICE_FILTERS (‘widget_title’, $ instancia [‘title’], $ instancia, $ this-> id_base). $ args [‘after_title’];
}
// Contenido del widget principal
If (! Vacía ($ publicaciones)) {
echo ‘
‘;
Foreach ($ publicaciones como $ post) {
echo ‘
enlace.’ “> ‘. $ post-> title-> renderizado. ‘
‘;
}
echo ‘
‘;
}
echo $ args [‘after_widget’];
}
/**
* Emite el formulario de opciones en el administrador
*
* @param array $ instancia el widget
*/
Formulario de función pública ($ instancia) {
// emite el formulario de opciones en el administrador
$ Title = (! Vacía ($ instancia [‘title’))? $ instancia [‘title’]: ”;
?>
<etiqueta for = " get_field_name (‘title’);?>”> Título:
<input class = "wideFat" id = " get_field_id (‘title’);>” name = ” get_field_name (‘title’);?>”
Type = “text” value = “” />
<? Php
}
}
add_action ('widgets_init', function () {registro_widget ('REST_PI_WIDGET');}); Después de completar el paso anterior, cuando intente ver su sitio "externo", verá una lista de sus publicaciones del sitio "local" en la barra lateral.
Todo esto es genial. Sin embargo, si recuerda, estas no son las publicaciones correctas, porque queremos mostrar solo los últimos artículos en la base de conocimiento. Nuestra implementación actual no hace esto, porque el complemento de la base de conocimiento utiliza su propio tipo de publicación personalizada. Y debido a que los tipos de publicaciones personalizadas no están disponibles públicamente para API por defecto, esto causa un problema. (Nota: La versión más reciente de la base de conocimiento está disponible públicamente para REST API y la siguiente sección se puede omitir) El uso de la API REST con publicaciones personalizadas para poner a disposición de la API de REST disponible para REST, necesita una pequeña solución. . Entonces, al crear una publicación personalizada, debe agregar un nuevo parámetro al registro de argumentos de tipo de publicación para que esté disponible públicamente:
'Show_in_rest' = true,
'REST_BASE' = 'HT_KB',
'REST_CONTROLLER_CLASS' = 'WP_REST_POSTS_CONTROLLER',
Pero debido a que en nuestro caso, utilizamos un complemento para alimentar el tipo de publicación de artículo desde la base de conocimiento, no editaremos directamente el archivo de complemento para que los tipos de publicaciones personalizadas estén disponibles para la API REST. (¡La edición directa de un archivo de complemento nunca es una buena idea!) Lo que haremos a cambio es agregar el siguiente código a las funciones.php en el tema del niño para el sitio "local": la última versión de Knowall y Heroic Knowledge Base ya ha activado el soporte de descanso, se puede desactivar con el filtro HT_KB_SHOW_IN_REST, pero puede modificar el código a continuación para su propia publicación personalizada.
/**
* Agregar soporte de descanso a un tipo de publicación existente
*/

add_action (‘init’, ‘my_custom_post_type_rest_support’, 25);
Función my_custom_post_type_rest_support () {
global $ wp_post_types;
// ¡Establezca esto en el nombre de su tipo de publicación!
$ post_type_name = ‘ht_kb’;
if (isset ($ wp_post_types [$ post_type_name])) {
$ wp_post_types [$ post_type_name]-> show_in_rest = true;
$ wp_post_types [$ post_type_name]-> REST_BASE = $ post_type_name;
$ wp_post_types [$ post_type_name]-> REST_CONTROLLER_CLASS = ‘WP_REST_POSTS_CONTROLLER’;
}
} Ahora, el tipo de publicación personalizada “HT_KB” está disponible públicamente para WP REST API. Después de haber proporcionado el tipo de publicación personalizada para la API REST WordPress, ahora debemos reparar nuestro widget para mostrar las publicaciones con ese tipo de publicación. Para hacer esto, volveremos al código de respuesta $ del paso #2 y lo actualizaremos a: $ respuesta = wp_remote_get (‘http://example.com/wp-json/wp/v2/ht_kb/’);
Básicamente, cambiamos / publicaciones / in / ht_kb / en la ruta API, porque “ht_kb” es el nombre de la publicación personalizada del complemento. Una vez que actualice el widget y la vista previa del sitio “externo”, ahora debería ver los últimos artículos en la base de conocimiento. Su final, como hemos visto, utilizando algunos fragmentos simples de PHP y HTML, puede crear nuevas funciones, widgets y widgets y complementos. Puede cambiar el complemento que acabamos de crear para crear un cuadro de búsqueda que use la API WP REST para buscar artículos de la base de conocimiento y para devolver los resultados en el widget. O bien, puede usar la autenticación para controlar quién ve los resultados (útil si ha creado contenido restringido). ¡Hay tantos que puedes probar! Simplemente obtenga lo básico correctamente y estará listo. A continuación, la lectura hay mucho contenido obsoleto alrededor de la API de REST de WordPress, así que asegúrese de leer solo las cosas actualizadas. Creé enlaces a algunos recursos útiles a lo largo de la publicación, pero enumeré algunos aquí. Así que lea más sobre ellos y descubra los diferentes modos creativos en los que puede usar la API REST.
Reposo de la API manual
Preguntas frecuentes sobre el resto del resto
WP REST API: ¿Estamos aquí?
Si tiene alguna pregunta sobre la implementación de la API REST WordPress, ¡envíelas los comentarios a continuación!

Copyright statement: Unless otherwise noted, this article is Collected from the Internet, please keep the source of the article when reprinting.

Check Also

Biblioteca Divi: explorarea posibilităților de sincronizare selectivă a bibliotecii Divi

Biblioteca Divi: explorarea posibilităților de sincronizare selectivă a bibliotecii Divi

Leave a Reply

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