Introducción
Este tutorial explica, paso a paso y con todo lujo de detalles, cómo añadir iconos sociales en el footer de un sitio WordPress usando HTML y las clases nativas del tema. Se cubren opciones seguras y accesibles: editar el archivo de plantilla del footer (footer.php) en un child theme, usar un menú social registrado, aprovechar las clases CSS que trae el tema (por ejemplo clases de iconos o utilidades) y alternativas basadas en SVG o fuentes de iconos. Incluye ejemplos de código listos para copiar y adaptar.
Requisitos y buenas prácticas previas
- Usar un child theme para no perder cambios con actualizaciones del tema padre.
- Hacer copia de seguridad antes de editar archivos (o trabajar en entorno de desarrollo).
- Identificar las clases nativas del tema: inspeccionar el DOM en el navegador para localizar clases útiles (p. ej. .site-footer, .footer-widgets, .icon-).
- Priorizar accesibilidad: incluir aria-label, texto alternativo visible o con screen-reader-text, y atributos seguros para enlaces externos.
- Abrir enlaces externos con target=_blank y añadir rel=noopener noreferrer para seguridad.
Opciones para implementar iconos sociales en el footer
- Insertar HTML directamente en footer.php del child theme (ideal si quieres control total).
- Crear un menú social en Apariencia → Menús y mostrarlo en el footer con wp_nav_menu (más flexible y editable desde el panel).
- Usar un widget o un bloque (si el tema soporta widgets o bloques en el footer).
- Usar shortcodes desde functions.php o un bloque HTML personalizado.
1) Ejemplo de HTML simple en el footer usando clases nativas
A continuación un bloque HTML que puedes integrar dentro de la estructura del footer del tema. Asume que el tema tiene una clase contenedora .site-footer o similar y algunas utilidades para iconos como .icon-facebook, .icon-twitter. Si tu tema usa otra convención, reemplaza los nombres de clase por los correctos.
ltdiv class=site-footer__social footer-socialgt
ltul class=social-linksgt
ltli class=social-links__itemgt
lta href=https://facebook.com/tu-perfil class=social-links__link icon-facebook aria-label=Facebook target=_blank rel=noopener noreferrergtFacebooklt/agt
lt/ligt
ltli class=social-links__itemgt
lta href=https://twitter.com/tu-perfil class=social-links__link icon-twitter aria-label=Twitter target=_blank rel=noopener noreferrergtTwitterlt/agt
lt/ligt
ltli class=social-links__itemgt
lta href=https://instagram.com/tu-perfil class=social-links__link icon-instagram aria-label=Instagram target=_blank rel=noopener noreferrergtInstagramlt/agt
lt/ligt
lt/ulgt
lt/divgt
Notas sobre el HTML anterior
- Las clases icon-facebook, icon-twitter o similares actúan como hooks para mostrar el icono mediante CSS o fuente de iconos que incluya el tema.
- Si el tema provee pseudo-elementos (::before) para las clases de icono, no hace falta incluir elementos ltigt adicionales.
- Si el tema no tiene estas clases, puedes insertar SVG inline o usar una fuente de iconos.
2) CSS de ejemplo aprovechando clases nativas (o extendiendo)
Ejemplo de estilos que respetan el diseño del tema, usan variables si el tema las define y aplican tamaños, colores y efectos al pasar el ratón.
.footer-social {
display: flex
align-items: center
}
.social-links {
list-style: none
margin: 0
padding: 0
display: flex
gap: 0.75rem
}
.social-links__link {
display: inline-flex
align-items: center
justify-content: center
width: 36px
height: 36px
border-radius: 50%
color: var(--footer-text-color, #ffffff)
background: transparent
text-decoration: none
transition: background-color .18s ease, color .18s ease, transform .12s ease
font-size: 16px / para icon-font /
}
.social-links__link:hover,
.social-links__link:focus {
background-color: rgba(255,255,255,0.08)
transform: translateY(-2px)
outline: none
box-shadow: 0 2px 6px rgba(0,0,0,0.12)
}
/ Si usas pseudo-elementos para iconos (tema) /
.icon-facebook::before { content: f09a / ejemplo: código Font Awesome / }
.icon-twitter::before { content: f099 }
.icon-instagram::before{ content: f16d }
/ Si usas SVG inline, ajustar tamaño /
.social-links__link svg { width: 20px height: 20px display: block }
3) Registrar y mostrar un menú social (recomendado)
Registrar un menú específico para redes facilita la gestión desde Apariencia → Menús. Añade este código al functions.php del child theme para registrar la ubicación social.
// Registrar ubicación de menú (añadir a functions.php del child theme)
function tu_tema_child_register_menus() {
register_nav_menus( array(
footer-social => Menú Social Footer,
) )
}
add_action( after_setup_theme, tu_tema_child_register_menus )
Luego, en el archivo footer.php del child theme, muestra el menú con wp_nav_menu. Personaliza container, menu_class y link_before si quieres insertar iconos mediante clases:
// Mostrar el menú social en footer.php
if ( has_nav_menu( footer-social ) ) {
wp_nav_menu( array(
theme_location => footer-social,
container => nav,
container_class=> footer-social,
menu_class => social-links,
link_before => ,
link_after => ,
depth => 1,
) )
}
Consejo: al crear los enlaces en el menú, coloca como Texto visible el nombre de la red (ej. Facebook) o utiliza el campo clase del enlace para añadir una clase como icon-facebook y ocultar el texto visualmente mediante CSS si empleas sólo iconos.
4) Uso de SVG inline (mejor rendimiento y accesibilidad)
Si el tema no incluye una librería de iconos, los SVG inline ofrecen alta calidad y control de color. Inserta el SVG dentro del enlace para que sea accesible añade role=img y aria-label o un title dentro del SVG.
lta href=https://instagram.com/tu-perfil class=social-links__link aria-label=Instagram target=_blank rel=noopener noreferrergt
ltsvg role=img viewBox=0 0 24 24 xmlns=http://www.w3.org/2000/svg aria-hidden=false focusable=falsegt
lttitlegtInstagramlt/titlegt
ltpath d=M12 2.2c3.2 0 3.6 0 4.9.1 1.2.1 1.9.2 2.4.4.6.2 1 .4 1.5.8.5.4.9.9 1.3 1.4.4.5.6.9.8 1.5.2.5.3 1.2.4 2.4.1 1.3.1 1.7.1 4.9s0 3.6-.1 4.9c-.1 1.2-.2 1.9-.4 2.4-.2.6-.4 1-.8 1.5-.4.5-.9.9-1.4 1.3-.5.4-.9.6-1.5.8-.5.2-1.2.3-2.4.4-1.3.1-1.7.1-4.9.1s-3.6 0-4.9-.1c-1.2-.1-1.9-.2-2.4-.4-.6-.2-1-.4-1.5-.8-.5-.4-.9-.9-1.3-1.4-.4-.5-.6-.9-.8-1.5-.2-.5-.3-1.2-.4-2.4C2.2 15.6 2.2 15.2 2.2 12s0-3.6.1-4.9c.1-1.2.2-1.9.4-2.4.2-.6.4-1 .8-1.5.4-.5.9-.9 1.4-1.3.5-.4.9-.6 1.5-.8.5-.2 1.2-.3 2.4-.4C8.4 2.2 8.8 2.2 12 2.2z /gt
lt/svggt
lt/agt
5) Accesibilidad y SEO
- Añade atributos aria-label en cada enlace para que lectores de pantalla identifiquen la red si el texto visible está oculto.
- Evita depender únicamente del color para transmitir información usa contraste suficiente para cumplir WCAG.
- Usa rel=nofollow solo si lo consideras necesario para enlaces no recomendados por SEO normalmente no es necesario para redes sociales públicas.
6) Detectar y aprovechar las clases nativas del tema
- Inspecciona la estructura del footer con las herramientas de desarrollo del navegador (clic derecho → Inspeccionar).
- Localiza contenedores y clases que el tema ya aplica (p. ej. .site-footer, .footer-widgets, utilidades de espaciado o colores).
- Reutiliza esas clases en tu HTML para garantizar coherencia: por ejemplo envuelve el bloque social dentro de la clase del footer para heredar paddings y colores.
- Si el tema incluye un sistema de icon-font, revisa la documentación o el archivo CSS para saber las clases exactas (p. ej. .icon-xxx o .social-xxx).
7) Comprobaciones finales y pruebas
- Prueba en distintas resoluciones para asegurar que el bloque social queda bien tanto en móvil como en escritorio.
- Verifica la navegación mediante teclado (Tab) y que cada enlace sea foco accesible y visible.
- Prueba con lectores de pantalla (por ejemplo NVDA o VoiceOver) para verificar los labels.
- Si usas SVG, comprueba que los atributos role/title/aria-label están presentes según el caso.
Ejemplo completo: footer.php mínimo combinando wp_nav_menu y estructura
lt?php
// En footer.php (child theme), lugar donde quieras mostrar el bloque social
?gt
ltfooter class=site-footer role=contentinfogt
ltdiv class=wrapgt
lt!-- Otros elementos del footer --gt
ltnav class=footer-social aria-label=Redes socialesgt
lt?php
if ( has_nav_menu( footer-social ) ) {
wp_nav_menu( array(
theme_location => footer-social,
container => false,
menu_class => social-links,
depth => 1,
link_before => ,
link_after => ,
) )
} else {
// Fallback: enlaces estáticos
?gt
ltul class=social-linksgt
ltli class=social-links__itemgtlta href=https://facebook.com/tu-perfil class=social-links__link aria-label=Facebook target=_blank rel=noopener noreferrergtFacebooklt/agtlt/ligt
ltli class=social-links__itemgtlta href=https://twitter.com/tu-perfil class=social-links__link aria-label=Twitter target=_blank rel=noopener noreferrergtTwitterlt/agtlt/ligt
lt/ulgt
lt?php
}
?gt
lt/navgt
lt/divgt
lt/footergt
Consejos finales y mantenimiento
- Si el tema se actualiza con cambios en la estructura del footer, tu child theme seguirá aplicando tus modificaciones: revisa siempre tras cada actualización mayor.
- Documenta en un archivo README dentro del child theme qué archivos has modificado y por qué.
- Considera usar un plugin de cache o un sistema de optimización para no perjudicar rendimiento si incluyes librerías externas de iconos.
- Si el tema tiene soporte para el personalizador de WordPress (Customizer), valora añadir opciones para activar/desactivar el bloque social o cambiar URLs desde la interfaz para usuarios no técnicos.
Leave a Reply