Tutorial WordPress: Diseñar un callout para notas y advertencias en posts técnicos

·

·

Introducción: por qué diseñar callouts para notas y advertencias

En posts técnicos de WordPress, los callouts —cajitas visuales que contienen notas, advertencias, consejos o información importante— mejoran la lectura, la comprensión y la jerarquía visual. Bien diseñados, ayudan al lector a identificar rápidamente información crítica sin romper el flujo del artículo. Este tutorial explica con detalle cómo diseñar callouts accesibles, consistentes y fáciles de mantener en un sitio WordPress, con ejemplos prácticos para CSS, shortcode PHP y uso en el editor de bloques.

Principios de diseño a seguir

Decisiones previas

Implementación 1 — CSS y HTML simples (recomendado como base)

La opción más rápida y flexible es añadir CSS al tema (o a un CSS personalizado) y usar clases en los bloques del editor (Grupo, Parrafo) o en shortcodes. A continuación un CSS base con variantes.

/ Callout base /
.callout {
  display: flex
  gap: 1rem
  align-items: flex-start
  padding: 1rem
  border-radius: 6px
  border: 1px solid transparent
  font-size: 0.95rem
  line-height: 1.4
  margin: 1rem 0
}

/ Icon container /
.callout__icon {
  flex: 0 0 36px
  width: 36px
  height: 36px
  display: inline-grid
  place-items: center
  border-radius: 50%
  font-size: 1.1rem
}

/ Content /
.callout__content {
  flex: 1 1 auto
}

/ Variantes /
.callout--note {
  background: var(--callout-note-bg, #eef7ff)
  color: var(--callout-note-color, #044b8b)
  border-color: rgba(4,75,139,0.12)
}
.callout--warning {
  background: var(--callout-warning-bg, #fff6e6)
  color: var(--callout-warning-color, #7a4b00)
  border-color: rgba(122,75,0,0.12)
}
.callout--tip {
  background: var(--callout-tip-bg, #eefaf0)
  color: var(--callout-tip-color, #0f6b3a)
  border-color: rgba(15,107,58,0.12)
}

/ Accesibilidad: foco visible si el callout es interactivo /
.callout[tabindex=0]:focus {
  outline: 3px solid rgba(21,156,228,0.25)
  outline-offset: 2px
}

/ Responsividad /
@media (max-width: 540px) {
  .callout {
    gap: 0.75rem
    padding: 0.75rem
  }
  .callout__icon {
    width:32px height:32px font-size:1rem
  }
}

Este CSS usa variables CSS (opcional) para facilitar personalización desde el tema. Añade estas variables en :root o en un selector de tema si quieres controlarlas desde el Customizer.

Ejemplo de HTML (para insertar en el editor como HTML o plantilla)

Advertencia: Antes de ejecutar este script, haz una copia de seguridad de la base de datos.

Implementación 2 — Shortcode en functions.php (para editores clásicos o bloques)

Un shortcode permite editar contenido sin tocar HTML y reutilizar callouts con parámetros para tipo, título y icono.

/ Añadir al functions.php del tema hijo o plugin personalizado /
function mi_callout_shortcode( atts, content = null ) {
    atts = shortcode_atts( array(
        type => note,      // note  warning  tip
        title => ,         // título opcional
        icon => ,          // carácter emoji o HTML de SVG
    ), atts, callout )

    type = esc_attr( atts[type] )
    title_html = atts[title] ?  . esc_html( atts[title] ) .   : 
    icon_html = atts[icon] ?  : 

    html  = 
html .= icon_html html .=
html .= title_html . do_shortcode( content ) html .=
return html } add_shortcode( callout, mi_callout_shortcode )

Uso en editor (bloques o clásico):

[callout type=warning title=Advertencia icon=⚠️]Este cambio es irreversible. Asegúrate de tener copia de seguridad antes de continuar.[/callout]

Notas sobre seguridad

Implementación 3 — Patrón o bloque de Gutenberg (opcional avanzado)

Para una experiencia de edición visual coherente, crea un patrón reutilizable (pattern) o un bloque personalizado. Si quieres una solución rápida sin JavaScript, define un patrón JSON o PHP que contenga la estructura HTML con clases y agrégalo a los patterns del tema.

  1. Crear un patrón con la estructura del callout (Grupo Icono Párrafo) y registrar en functions.php.
  2. Para bloques personalizados que expongan controles (selección de tipo, icono, título), crea un bloque con registerBlockType y atributos esto requiere JavaScript (React/JSX).

Ejemplo de registro de pattern simple (functions.php):

register_block_pattern(
  mi-tema/callout-warning,
  array(
    title       => Callout — Advertencia,
    content     => 
Advertencia: Texto del aviso...
, ) )

Accesibilidad y consideraciones semánticas

Opciones de personalización y mantenimiento

Ejemplo de variables CSS en :root

:root{
  --callout-note-bg: #eef7ff
  --callout-note-color: #044b8b
  --callout-warning-bg: #fff6e6
  --callout-warning-color: #7a4b00
  --callout-tip-bg: #eefaf0
  --callout-tip-color: #0f6b3a
}

Print y consideraciones móviles

Tabla rápida de variantes y usos sugeridos

Variante Uso Color sugerido
Note Información complementaria, aclaraciones Azul claro
Warning Advertencias sobre efectos secundarios, riesgos Amarillo/ámbar
Tip Atajos, recomendaciones prácticas Verde claro

Ejemplos prácticos listos para usar

Fragmentos directos para pegar en functions.php (shortcode), CSS y ejemplo de uso en el editor.

/ Shortcode completo (versión resumida) /
function mi_callout_shortcode( atts, content = null ) {
    atts = shortcode_atts( array(type=>note,title=>,icon=>), atts, callout )
    type = preg_replace(/[^a-z0-9_-]/, , atts[type])
    title = atts[title] ?  . esc_html( atts[title] ) .   : 
    icon  = atts[icon] ?  : 
    return 
. icon .
. title . do_shortcode( content ) .
} add_shortcode(callout,mi_callout_shortcode)
/ CSS mínimo para que funcione inmediatamente /
.callout{display:flexgap:0.75rempadding:0.9remborder-radius:6pxborder:1px solid transparent}
.callout__icon{flex:0 0 36pxdisplay:inline-gridplace-items:centerborder-radius:50%}
.callout__content{flex:1}
.callout--note{background:#eef7ffcolor:#044b8bborder-color:rgba(4,75,139,0.12)}
.callout--warning{background:#fff6e6color:#7a4b00border-color:rgba(122,75,0,0.12)}
.callout--tip{background:#eefaf0color:#0f6b3aborder-color:rgba(15,107,58,0.12)}

[callout type=note title=Nota icon=💡]Recuerda actualizar el plugin a la última versión antes de probar esto.[/callout]

[callout type=warning title=Advertencia icon=⚠️]No uses este método en sitios en producción sin revisión previa.[/callout]

Buenas prácticas finales

Recursos

Documentación oficial de WordPress sobre shortcodes y patterns está disponible en el sitio de WordPress: https://wordpress.org



Leave a Reply

Your email address will not be published. Required fields are marked *