Icono del sitio Imacreste

Trabajar con los metadatos de WordPress

Hemos visto como podemos añadir nuevos módulos para gestionar diferente información más halla de las entradas y las páginas de WordPress. En estos módulos podemos indicar los campos básicos y entre otras opciones esta la de incluir campos personalizados. Estos campos se crean dentro de cada entrada y cada entrada puede tener unos u otros.

Vamos a ver como podemos añadir, modificar, recuperar o borrar campos personalizados.

Añadir un metadato a una entrada

Add_post_meta($id, $meta_key, $meta_vale,  $unique): con esta función podemos añadir un campo personalizado con su valor a una entrada concreta, el último campo es para indicar si la clave es exclusiva para esta entrada.

Este valor aparecerá en la edición de la entrada, si queremos que no aparezca para evitar que alguien lo pueda borrar o cambiar debemos darle un $meta_key con guion bajo (_).

add_post_meta(40, 'precio_key', '35', true);

En este ejemplo estamos añadiendo en la entrada ID = 40 un campo personalizado precio_key con el valor 35. Si vamos a editar la entrada podemos ver como aparece el campo precio_key en los campos personalizados.

Actualizar un metadato de una entrada

Update_post_meta($id, $meta_key, $meta_vale,  $valor_anterior): permite cambiar el valor de un campo personalizado de una entrada, el último campo es por si una entrada tiene múltiples valores de un mismo $meta_key.

update_post_meta(40, 'precio_key', '29');

En este caso estamos actualizando el valor del campo precio_key en la entrada 40.

Borrar metadatos de una entrada

Delete_post_meta($id, $meta_key, $meta_vale): elimina el campo personalizado. Si no se indica el valor se borran todos los valores del campo.

delete_post_meta(40, 'precio_key');

En este caso se elimina el campo precio_key para la entrada 40, sea cual sea su valor. Si introducimos un $meta_value por ejemplo 30,el campo no se mostraría si su valor es igual a 30.

Recuperar metadatos y mostrarlos

Get_post_meta($id, $campo): devuelve un array con los valores del campo personalizado para la entrada especificada.

$valores_campo=get_post_meta(40,'precio_key');

En este caso recuperamos los valores del campo precio_key para la entrada 40, devolviendo por defecto un array (Por ejemplo, imaginemos que tenemos un campo colores con varios valores). Si solo debe devolver un valor, podemos indicarle que nos devuelva el valor añadiendo una ultima condición como true.

Get_post_custom($id): recupera todos los campos personalizados de una entrada. Genera una matriz multidimensional.

$valores_todos_campos=get_post_custom(40);

En este caso obtenemos una matriz multidimensional de todos los campos personalizados y sus metadatos de la entrada 40. Y podemos recorrerlo de la siguiente forma:

foreach ($valores_todos_campos as $campo=>$valores){
   echo $campo." => ";
   foreach ($valores as $nombreValor=>$valor ){
      echo "<br>".$nombreValor." =>";
      echo var_dump($valor);
   }
   echo "<br>";
}
Salir de la versión móvil