• Ir a navegación principal
  • Ir al contenido principal
  • Ir a la barra lateral primaria

DecodeCMS

Tu WordPress a otro Nivel ...

  • Acerca de
  • Contacto
  • Inicio
  • Tutoriales
    • Themes
    • Plugins
    • Core
    • Recursos
  • Cursos
Inicio / Tutoriales / Core / Post Meta desde la API de WordPress
Anuncio banner webservi

Post Meta desde la API de WordPress

Post Meta desde la API de WordPress

[ 14 junio 2018 ] [ Autor: Jhon Marreros Guzmán ][ Core - Avanzado] [ ]

funcionalidad

¿Me ayudas a llegar a más gente?

Twittear Compartir LinkedIn WhatsApp

Anteriormente habíamos visto Cómo usar la Rest API de WordPress, habíamos visto cómo leer las entradas de nuestros sitio web, sin embargo por defecto WordPress no muestra los datos de la tabla postmeta asociados con las entradas, en este artículo veremos cómo solucionar eso.

 

Generalidades

Para verificar si la API de WordPress funciona correctamente, podemos usar directamente alguna URL que haga referencia a la API y probarla directamente en el navegador, en la documentación oficial se explica la sintaxis que debe tener la url.

Por ejemplo para devolver una cantidad específica de entradas podemos usar la siguiente url:

http://tudominio.com/wp-json/wp/v2/posts?per_page=XX

En donde XX es la cantidad de entradas a devolver, por defecto son 10 entradas

Si queremos devolver una entrada específica:

http://tudominio.com/wp-json/wp/v2/posts/XX

En donde XX es el ID de la entrada.

 

Datos devueltos

Si usamos alguna de las urls anteriores, que devuelven una o varias entradas, veremos que no existe los Post Meta, tal como se muestra en la imagen adjunta.

No devuelve post meta en la url de la API

La captura de pantalla anterior ha sido realizada usando el navegador Firefox Developer edition, otra alternativa para ver los datos de manera estructurada es usar la aplicación postman.

 

Agregando los Post Meta a la REST API

Para agregar los post meta usaremos el siguiente código que puedes insertar como parte de un plugin o en el archivo functions.php de tu theme.


add_action( 'rest_api_init', 'crear_campo_adicional_api_posts' );
 
function crear_campo_adicional_api_posts() {
	register_rest_field( 'post', 
						  'post_meta_fields', 
						  array(
						  	'get_callback' => 'callback_leer_post_meta'
							)
						);
}
 
function callback_leer_post_meta( $object ) {
	$post_id = $object['id'];
	return get_post_meta( $post_id );
}

En el código anterior:

  • Usamos el hook rest_api_init, que hace referencia a la función crear_campo_adicional_api_posts()
  • Dentro de la función de referencia se usa la función de WordPress register_rest_field() que registra un nuevo campo para la API REST
  • Como parámetros de la función tenemos: el nombre del campo post_meta_fields y la función callback callback_leer_post_meta()
  • Finalmente en la función callback el parámetro de entrada es el objeto post actual por lo que podemos devolver los post meta de manera simple con la función get_post_meta()

 
Una vez aplicados estos cambios entonces veremos que ahora ya nos aparecen datos adicionales en el campo post_meta_fields que hemos creado.

Datos adicionales de post meta

 

Conclusión

Cuando usamos la REST API de WordPress, >no estamos limitados a los campos que nos devuelve por defecto WordPress y podemos añadir campos adicionales de acuerdo a nuestras necesidades, dentro de la función callback del código anterior, callback_leer_post_meta(), tenemos la posibilidad de devolver cualquier tipo de información relacionada con el post actual.

 

¿Aún con dudas?, en el siguiente video se explica los puntos tratados anteriormente.

Suscríbete a DecodeCMS:  

 

¿Me ayudas a llegar a más gente?

Twittear Compartir LinkedIn WhatsApp

Artículos Relacionados

  • Leer datos desde otra base de datos en WordPressLeer datos desde otra base de datos en WordPress
  • Crear un sitio One Page en WordPressCrear un sitio One Page en WordPress
  • Mostrar lista de autores en WordPressMostrar lista de autores en WordPress
  • Añadir código de Google Tag Manager sin plugins en WordPressAñadir código de Google Tag Manager sin plugins en WordPress
Valora este artículo : 1 barra2 barras3 barras4 barras5 barras (1 votos, promedio: 5,00 de 5)
Cargando...

Interacciones con los lectores

Comentarios

  1. JESUS VIEIRA DE LIMA

    5 abril, 2019

    Ok, como gravo más campos de postmeta?

    • Jhon Marreros Guzmán

      7 abril, 2019

      Hola, puedes agregar campos post meta por programación, revisa: https://developer.wordpress.org/reference/functions/add_post_meta/ , o también: https://decodecms.com/como-usar-los-campos-personalizados-en-wordpress/

Para escribir código envolver con: <pre class="language-xxx"><code> </code></pre> ,reemplaza las xxx (php, css, html)

*

* Gravatar habilitado

Barra lateral primaria

Presentación

Únete a DecodeCMS

Recibirás como regalo:

Guia práctica con video:
Los 5 posibles errores que estas cometiendo cuando trabajas con código en WordPress

Niveles

Básico Intermedio Avanzado

Etiquetas

accesibilidad css dashboard editor error funcionalidad herramientas imagen js librería mejoras optimización seguridad social

Populares

Incluir Bootstrap en WordPress

Añadir una nueva ubicación de menú a un theme WordPress

Agregar login y logout en un menú de WordPress

Contenido de relleno en WordPress

Recientes

  • Leer datos desde otra base de datos en WordPress
  • Crear un sitio One Page en WordPress
  • Mostrar lista de autores en WordPress
  • Añadir código de Google Tag Manager sin plugins en WordPress
alojamiento wordpress

© logo decode pie Copyright 2021 | Todos los derechos reservados | Política de Privacidad