Metadatos y Custom Fields en WordPress (1/3)

Tabla de contenidos

Esta es la primera entrada de una serie de tres que tengo la intención de crear para hablar de los metadatos en WordPress.

  • En esta, la primera entrada, hablaré de los custom fields básicos, como guardarlos y como recuperarlos.
  • En la segunda entrada hablaré de los custom fields ofrecidos por plugins, hablaré concretamente de uno que uso en mi trabajo y que me quita mucho tiempo de programación.
  • En la tercera entrega comentaré como generarlos, guardarlos, y actualizarlos sin necesidad de plugins de por medio.

En este post y en este otro hablé sobre la creación de Custom Posts o Posts Personalizados en WordPress. Si echáis un vistazo creamos un tipo de post Actividad, pero imagina que las actividades tienen una serie de datos adicionales que son necesarios mostrarlos en la página web.

Queremos que las actividades tengan:

  • Aforo máximo
  • Inscripción Previa
  • Lugar

Cuando creamos los argumentos de configuración del nuevo tipo de post, en el array que pasábamos al parámetro ‘supports‘ indicamos custom-fields lo que nos hacía que este tipo de de entrada soportase campos personalizados o metadatos y cuando creábamos o modificábamos una entrada de este tipo de post nos encontrábamos con este tipo de cuadro.

custom_fields_1

El proceso es sencillo, elegimos uno de los ya existentes o creamos uno nuevo, hay que distinguir entre:

  • Nuevo: Crea un nuevo campo personalizado, te pedirá introducir nombre y valor.
  • Añadir un campo personalizado: Lo añade al post que estás creando / editando.

custom_fields_2

No nos queda más que repetir el proceso hasta que tengamos los campos que necesitemos.

custom_fields_3

Le damos título y contenido a la nueva Actividad y pasamos a ver como se muestran estos datos en nuestra web.

El ejemplo que voy a poner va a ser en el la vista individual de la entrada, recordad la jerarquía de templates de WordPress, single.php hace referencia a una entrada en concreto, single-{custom_post}.php hace referencia a un tipo de entrada de un tipo personalizado de post.

Vamos a crear single-actividad.php para mostrar la información de la actividad, recomiendo que os paséis por los posts sobre el bucle de WordPress.

Para mostrar los metadatos usamos la función the_meta() dentro del bucle y nos los muestra preformateados de la siguiente manera.

[php]
<?php while (have_posts()) : the_post(); ?>
<h1><?php the_title(); ?></h1>
<?php the_content(); ?>
<br><br>
<?php the_meta(); ?>
<?php endwhile; ?>
[/php]

Si abrimos Firebug y analizamos el formato con el que nos ‘escupe’ los metadatos obtenemos esto:

firebug_custom_fields

Pero ¡hey!, hay otra manera algo más compleja de mostrarlos donde queramos y además por separado. Haciendo uso de la función get_post_meta():

  • get_post_meta($id_del_post, $nombre_del_campo, $unico):
    • $id_del_post: Es la ID del post que tiene el metadato.
    • $nombre_del_campo: El nombre que le hemos dado.
    • $unico: Si se establece a TRUE decimos que devuelve un valor en concreto, si es FALSE devuelve un array de resultados.

[php]
<?php while (have_posts()) : the_post(); ?>
<h1><?php the_title(); ?></h1>
<?php the_content(); ?>
<br><br>
<?php echo ‘Lugar ‘ . get_post_meta($post->ID, ‘Lugar’, true); ?><br>
<?php echo ‘Aforo Maximo ‘ . get_post_meta($post->ID, ‘Aforo Máximo’, true); ?><br>
<?php echo ‘Inscripción Previa ‘ . get_post_meta($post->ID, ‘Inscripción Previa’, true); ?><br>
<?php endwhile; ?>
[/php]

Con el siguiente resultado:

resultado_get_post

Pero hay un pero. Desaconsejo totalmente usar nombres de Custom Fields con acentos y espacios si lo que queremos es mostrarlos con get_post_meta(), en ese caso aconsejo poner un prefijo que identifique el tipo de post, y a continuación el nombre en minúscula y separado por guiones bajos.

  • Lugar -> actividad_lugar
  • Incripción Previa -> actividad_inscripcion_previa
  • Aforo Máximo -> actividad_aforo_maximo

Es la manera que aconsejo, al final siempre a la hora de diseñar, programar y maquetar ponemos los metadatos aquí y allá por lo que es conveniente nombrarlos correctamente para que no haya problemas en el código.

Compartir en facebook
Compartir en twitter
Compartir en linkedin

1 comentario en «Metadatos y Custom Fields en WordPress (1/3)»

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

También te puede interesar

Lo que no son cuentas, son cuentos

Descarga nuestros paneles de control para monitorizar la rentabilidad de tu negocio y deja de creer en falsas promesas.

100% libre de humo