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. |
// 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()owp_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:
- Define grupos de campos desde el panel de administración.
- Asigna reglas de ubicación (post type, plantilla, categoría).
- Utiliza funciones específicas:
get_field()othe_field().
// 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 atributorender_callback. - Exponer campos en la REST API:
register_post_meta()contrue.
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 🙂 |
