• Saltar a la navegación principal
  • Saltar al contenido principal
  • Saltar a la barra lateral principal

DecodeCMS

Tu WordPress a otro Nivel ...

  • Acerca de
  • Contacto
  • Inicio
  • Tutoriales
    • Themes
    • Plugins
    • Core
    • Recursos
  • Cursos
  • Acceder
    • Mis cursos
    • Mi Cuenta
    • Acceder
Inicio / Tutoriales / Core / Post Meta desde la API de WordPress

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

  • CRUD en WordPress sin pluginsCRUD en WordPress sin plugins
  • Cómo eliminar todos los productos de WooCommerceCómo eliminar todos los productos de WooCommerce
  • Agrupar los resultados de búsqueda en WordPressAgrupar los resultados de búsqueda en WordPress
  • tipos de complementos de WordPress5 tipos de complementos de WordPress
Valora este artículo : 1 barra2 barras3 barras4 barras5 barras (2 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 principal

Presentación

Curso Decodifica WordPress

Únete a DecodeCMS

Recibirás como regalo:

Guia práctica con video:
¿Quieres agregar código a WordPress? Revisa las diferentes opciones que tienes.Ver más

Jooble
Alojamiento Wordpress

Niveles

Básico Intermedio Avanzado

Etiquetas

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

Populares

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

Usar funciones de WordPress fuera de WordPress

Modificar contenido usando código en WordPress

Mostrar lista de autores en WordPress

© logo decode pie
Política de Privacidad | Política de devoluciones
Copyrigth 2023 Todos los derechos reservados