Descubre en este tutorial cómo obtener y mostrar las últimas entradas de una instalación remota de WordPress usando la API REST.
En este tutorial vas a aprender cómo puedes usar la API REST para obtener y mostrar un listado de las últimas entradas de una instalación externa de WordPress. Este sería el resultado:
Vamos a verlo:
Instrucciones para mostrar las últimas entradas de una instalación de WordPress usando la API REST
Para obtener la información sobre las últimas entradas vas a usar el endpoint de la API REST que te da acceso a esa información.
Además, vas a encapsular estos datos dentro de un shortcode para poder mostrar el listado donde quieras.
Añade el siguiente snippet al fichero functions.php o a tu plugin de funcionalidades:
Para ver este código y los otros 2055 snippets de esta web,
identifícate o suscríbete aquí.
Con este código creas un shortcode que te permite mostrar un listado con todos los posts de una instalación remota de WordPress usando el shortcode [post_list].
En la primera parte del snippet defines las variables:
$website_url
= La URL de la web$request_ur
l = La URL donde se hace la petición. En este caso es la concatenación:$website_url . '/wp-json/wp/v2/posts/'
que accede al endpoint para las entradas de la API REST.
Acuérdate de cambiar el valor de las siguientes variables por las de tu caso.
A continuación usas la función wp_remote_request
para obtener el endpoint para posts (con el método GET
).
Una vez obtienes la información enviada por la API utilizas las funciones wp_remote_retrieve_body
para extraer los datos del cuerpo y json_decode
para decodificarla.
Y cuando ya tiene el array con los datos, usas un bucle (foreach) para extraer la información que te interesa.
En este caso, el título [title->rendered]
> con enlace al mismo [link]
.
Pero puedes añadir más para personalizarlo a tu gusto. Estos son todos lo detalles que puedes mostrar:
[date]
[date_gmt]
[guid]
[id]
[link]
[modified]
[modified_gmt]
[slug]
[status]
[type]
[password]
[permalink_template]
[generated_slug]
[title]
[content]
[author]
[excerpt]
[featured_media]
[comment_status]
[ping_status]
[formart]
[meta]
[sticky]
[template]
[categories]
[tags]
Tienes más información al respecto en página oficial para desarrolladores de WordPress.
Por ejemplo, para un post de mi blog retorna algo así:
stdClass Object (
[id] => 4033
[date] => 2019-01-08T07:00:50
[date_gmt] => 2019-01-08T06:00:50
[guid] => stdClass Object ( [rendered] => https://nbadiola.com/?p=4033 )
[modified] => 2021-08-25T17:12:46
[modified_gmt] => 2021-08-25T15:12:46
[slug] => bloques-imagenes-galerias-editor-wordpress
[status] => publish
[type] => post
[link] => https://nbadiola.com/bloques-imagenes-galerias-editor-wordpress/
[title] => stdClass Object ( [rendered] => Cómo usar los bloques de imágenes y galerías en el nuevo editor de WordPress )
[content] => stdClass Object ( [rendered] =>
[protected] => )
[author] => 1
[featured_media] => 4067
[comment_status] => open
[ping_status] => closed
[sticky] => 1 [template] =>
[format] => standard
[meta] => stdClass Object ( [_genesis_hide_title] => [_genesis_hide_breadcrumbs] => [_genesis_hide_singular_image] => [_genesis_hide_footer_widgets] => [_genesis_custom_body_class] => [_genesis_custom_post_class] => [_genesis_layout] => )
[categories] => Array ( [0] => 3 )
[tags] => Array ( [0] => 131 [1] => 116 [2] => 9 )
[featured_image_src] => https://nbadiola.com/wp-content/uploads/2019/01/bloques-imagenes-galerias-editor-wordpress.jpg
[featured_image_src_square] => https://nbadiola.com/wp-content/uploads/2019/01/bloques-imagenes-galerias-editor-wordpress.jpg
[author_info] => stdClass Object ( [display_name] => Nahuai [author_link] => https://nbadiola.com/author/admin/ ) [_links] => stdClass Object ( [self] => Array ( [0] => stdClass Object ( [href] => https://nbadiola.com/wp-json/wp/v2/posts/4033 ) )
[collection] => Array ( [0] => stdClass Object ( [href] => https://nbadiola.com/wp-json/wp/v2/posts ) )
[about] => Array ( [0] => stdClass Object ( [href] => https://nbadiola.com/wp-json/wp/v2/types/post ) )
[author] => Array ( [0] => stdClass Object ( [embeddable] => 1 [href] => https://nbadiola.com/wp-json/wp/v2/users/1 ) )
[replies] => Array ( [0] => stdClass Object ( [embeddable] => 1 [href] => https://nbadiola.com/wp-json/wp/v2/comments?post=4033 ) )
[version-history] => Array ( [0] => stdClass Object ( [count] => 0 [href] => https://nbadiola.com/wp-json/wp/v2/posts/4033/revisions ) )
[wp:featuredmedia] => Array ( [0] => stdClass Object ( [embeddable] => 1 [href] => https://nbadiola.com/wp-json/wp/v2/media/4067 ) )
[wp:attachment] => Array ( [0] => stdClass Object ( [href] => https://nbadiola.com/wp-json/wp/v2/media?parent=4033 ) )
[wp:term] => Array ( [0] => stdClass Object ( [taxonomy] => category [embeddable] => 1 [href] => https://nbadiola.com/wp-json/wp/v2/categories?post=4033 ) [1] => stdClass Object ( [taxonomy] => post_tag [embeddable] => 1 [href] => https://nbadiola.com/wp-json/wp/v2/tags?post=4033 ) )
[curies] => Array ( [0] => stdClass Object ( [name] => wp [href] => https://api.w.org/{rel} [templated] => 1 ) ) ) )
Así que puedes personalizar los detalles que prefieres que se muestren.
Si quieres ver estos datos puedes usar la función print_r
, en este caso sería return print_r($remote_post);
.
Si tienes alguna duda o sugerencia puedes dejarla en los comentarios.
Para poder ver el listado solo te queda un paso.
2. Introduce el shortcode donde quieras
La ventaja de los shortcodes es que puedes insertarlos en cualquier punto de la web.
Solo tendrás que escribir [post_list]
donde quieres que se visualice.
Importante:
- Si estás utilizando el editor clásico, utiliza la pestaña de HTML para introducir el shortcode.
- En caso de que ya estés usando el nuevo editor de bloques (Gutenberg) puedes añadirlo al bloque normal de párrafo, el de HTML o el de shortcode. Todos ellos renderizarán de forma correcta el contenido.
Este sería un ejemplo del listado que mostraría el shortcode:
Conclusiones
Ahora ya sabes cómo utilizar la API REST para obtener y mostrar las últimas entradas de una instalación remota de WordPress.
Si tienes alguna duda te leo en los comentarios. Y si quieres dejarme una sugerencia para futuros tutoriales, envíamela a través del formulario de contacto.
Todo ventajas de ser suscriptor. 😉