Mostrar campos personalizados en tus plantillas

Contents

Introducción a los campos personalizados

Los campos personalizados (o custom fields) constituyen una de las formas más flexibles de enriquecer el contenido en WordPress. Permiten añadir información adicional a entradas, páginas o cualquier tipo de contenido personalizado (custom post type) sin necesidad de alterar la base de datos a mano. Este artículo describe en detalle cómo mostrar campos personalizados en tus plantillas, desde conceptos básicos hasta implementaciones avanzadas con Advanced Custom Fields (ACF).

1. ¿Qué son los campos personalizados

En su definición más simple, un campo personalizado es un par key/value asociado a un post. Por ejemplo, puedes tener un campo llamado precio con valor 49.99, o ubicación con valor Madrid, España.

1.1 Tipos de datos frecuentes

  • Texto: Una cadena simple.
  • Número: Enteros o decimales.
  • Fecha: Formatos legibles o timestamps.
  • Imágenes: ID de attachment o URL.
  • Repetidores: Arrays de valores (en ACF).

2. Funciones básicas en WordPress

Para interactuar con campos personalizados en tus templates, WordPress ofrece:

Función Descripción
get_post_meta() Recupera uno o varios valores de meta.
update_post_meta() Actualiza o crea un campo si no existe.
delete_post_meta() Elimina un meta especificado.
Ejemplo básico de uso en plantilla:

ltphp
// Obtener el valor del campo precio
precio = get_post_meta( get_the_ID(), precio, true )
if ( precio ) {
echo ltpgtPrecio: ltstronggt€ . esc_html( precio ) . lt/stronggtlt/pgt
}
gt

3. Buenas prácticas de seguridad y rendimiento

  • Escapar datos: Usa esc_html(), esc_url() o wp_kses() según el contexto.
  • Cachear metadatos: Evita múltiples llamadas idénticas a get_post_meta().
  • Registrar campos en REST API: Facilita consumo desde JavaScript o aplicaciones externas.
  • Prefijos únicos: Usa prefijos en la clave para evitar colisiones con otros plugins.

4. Uso avanzado con Advanced Custom Fields (ACF)

El plugin ACF simplifica enormemente el manejo de campos personalizados:

  1. Define grupos de campos desde el panel de administración.
  2. Asigna reglas de ubicación (post type, plantilla, categoría).
  3. Utiliza funciones específicas: get_field() o the_field().
Ejemplo con ACF:

ltphp
// Obtener un campo de texto
subtitulo = get_field( subtitulo_destacado )
if ( subtitulo ) {
echo lth3gt . esc_html( subtitulo ) . lt/h3gt
}

// Repetidor
if ( have_rows( lista_caracteristicas ) ) {
echo ltulgt
while ( have_rows( lista_caracteristicas ) ) {
the_row()
echo ltligt . esc_html( get_sub_field( texto ) ) . lt/ligt
}
echo lt/ulgt
}
gt

4.1 Campos flexibles y grupos

Los Flexible Content permiten construir bloques reutilizables mezclando distintos subcampos. Esto se refleja en la plantilla mediante estructuras condicionales (have_rows() get_row_layout()).

5. Integración con Gutenberg y REST API

Hoy en día es frecuente combinar campos personalizados con bloques de Gutenberg. Puedes:

  • Registrar un bloque dinámico que recoja metadatos: register_block_type() con atributo render_callback.
  • Exponer campos en la REST API: register_post_meta() con true.
Ejemplo de registro en REST API:

ltphp
function registrar_meta_en_rest() {
register_post_meta( post, precio, array(
show_in_rest => true,
single => true,
type => number,
) )
}
add_action( init, registrar_meta_en_rest )
gt

6. Conclusión

Dominar los campos personalizados aporta enorme versatilidad a tus proyectos WordPress. Desde mostrar datos simples con get_post_meta() hasta crear complejas estructuras con ACF y bloques de Gutenberg, estos conocimientos te permiten entregar experiencias ricas y adaptadas a cada necesidad, manteniendo rendimiento y seguridad.

7. Recursos y enlaces



Acepto donaciones de BAT's mediante el navegador Brave 🙂



Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *