Tutorial WordPress: Personalizar la página de resultados de búsqueda con CSS

·

·

Introducción

Personalizar la página de resultados de búsqueda en WordPress con CSS permite mejorar la experiencia del usuario, reforzar la identidad visual de tu sitio y aumentar la claridad al presentar coincidencias. Este artículo ofrece una guía completa: desde la identificación de selectores relevantes y estructura de plantilla, hasta ejemplos prácticos de CSS y snippets PHP para mejorar la presentación y accesibilidad.

Requisitos previos

Anatomía de la página de búsqueda en WordPress

WordPress usa, por defecto, la plantilla search.php. Si no existe, caerá en index.php o en la jerarquía del tema. La estructura típica dentro del loop contiene:

Además, WordPress agrega clases útiles al body como search y a veces search-results si el tema las define. Muchos temas también encierran cada resultado en un elemento con clase entry, post o search-result. Identificar las clases del tema es el primer paso: usa las herramientas de desarrollo del navegador (Inspector).

Selectores y convenciones útiles

A continuación una tabla con selectores comunes que puedes encontrar ajusta nombres según tu tema.

Selector Uso típico
body.search Aplica estilos solo en páginas de resultados de búsqueda.
.search-results o .search-list Contenedor principal de la lista de resultados.
.search-result / .entry / .post Cada elemento resultado. Ideal para separación y hover.
.search-result .entry-title Título enlazado de cada resultado.
.search-result .entry-meta Metadatos: autor, fecha, categoria.
.search-result .entry-excerpt Extracto o fragmento que muestra coincidencias.

Flujo recomendado para aplicar cambios

  1. Crear un child theme o usar un plugin de CSS personalizado para evitar perder cambios con actualizaciones del tema.
  2. Identificar selectores con las herramientas del navegador.
  3. Crear/editar un archivo CSS dedicado para estilos de búsqueda y encolarlo correctamente (o añadirlo al CSS adicional del tema).
  4. Probar en escritorio y móvil, comprobar contraste y accesibilidad.
  5. Optimizar: evitar reglas costosas y usar selectores concretos.

Ejemplos prácticos de CSS

Ejemplo 1: Sobresalir la lista de resultados con un layout en tarjeta (grid ligero) y mejorar la legibilidad.

/ Aplica solo en páginas de búsqueda /
body.search .search-results {
  display: grid
  grid-template-columns: 1fr
  gap: 1.25rem
  margin: 0 auto
  max-width: 1100px
  padding: 1rem
}

/ Cada resultado como tarjeta /
body.search .search-result {
  display: flex
  gap: 1rem
  align-items: flex-start
  padding: 1rem
  border-radius: 8px
  background: #ffffff
  box-shadow: 0 1px 3px rgba(0,0,0,0.06)
  transition: transform 180ms ease, box-shadow 180ms ease
}

/ Hover táctil/ratón /
body.search .search-result:hover {
  transform: translateY(-3px)
  box-shadow: 0 6px 18px rgba(0,0,0,0.08)
}

/ Miniatura (ajusta selector al del tema) /
body.search .search-result .post-thumbnail img {
  width: 120px
  height: 80px
  object-fit: cover
  border-radius: 6px
}

/ Contenido principal /
body.search .search-result .entry-content {
  flex: 1
}

/ Título /
body.search .search-result .entry-title a {
  color: #0b5cff
  text-decoration: none
  font-size: 1.125rem
  font-weight: 600
}

/ Metadatos /
body.search .search-result .entry-meta {
  color: #6b7280
  font-size: 0.875rem
  margin-top: 0.35rem
}

/ Extracto /
body.search .search-result .entry-excerpt {
  margin-top: 0.5rem
  color: #374151
  line-height: 1.5
}

/ Adaptación móvil: una columna, miniaturas más pequeñas /
@media (max-width: 720px) {
  body.search .search-result {
    flex-direction: column
  }
  body.search .search-result .post-thumbnail img {
    width: 100%
    height: auto
  }
}

Ejemplo 2: Resaltar palabras buscadas (visual mediante etiqueta mark)

Si el servidor/PHP envuelve las coincidencias en ltmarkgt, con CSS puedes darles un estilo específico y accesible.

/ Estilo para términos resaltados /
body.search mark,
body.search .search-highlight {
  background: linear-gradient(90deg, #fff69b, #ffd166)
  color: #111827
  padding: 0.08rem 0.18rem
  border-radius: 3px
  font-weight: 600
  box-shadow: inset 0 -2px 0 rgba(0,0,0,0.06)
}

Cómo envolver términos buscados en ltmarkgt (snippet PHP)

Un método robusto es filtrar el título y el extracto para envolver las coincidencias de la query en una etiqueta ltmarkgt. Añádelo en el archivo functions.php del child theme.

/ Resalta términos de búsqueda en títulos y extractos /
function mi_resaltar_terminos_busqueda( text ) {
    if ( is_search()  ! empty( get_search_query() ) ) {
        keywords = array_map( preg_quote, explode(  , trim( get_search_query() ) ) )
        if ( ! empty( keywords ) ) {
            pattern = /( . implode( , keywords ) . )/i
            text = preg_replace( pattern, 1, text )
        }
    }
    return text
}
add_filter( the_title, mi_resaltar_terminos_busqueda, 10, 1 )
add_filter( the_excerpt, mi_resaltar_terminos_busqueda, 10, 1 )

Encolar tu hoja de estilos para la búsqueda

Si creas un archivo CSS dedicado (por ejemplo, search-style.css) en tu child theme, encolarlo correctamente evita problemas de carga.

/ Encolar CSS personalizado para la página de búsqueda /
function mi_enqueue_search_styles() {
    if ( is_search() ) {
        wp_enqueue_style( mi-search-style, get_stylesheet_directory_uri() . /css/search-style.css, array(), 1.0 )
    }
}
add_action( wp_enqueue_scripts, mi_enqueue_search_styles )

Accesibilidad y contraste

Optimización y buenas prácticas

  1. Evita selectores muy generales que afecten al resto del sitio. Prefiere body.search como scope principal.
  2. Mantén el CSS modular: crea un archivo dedicado a búsqueda para facilitar mantenimiento.
  3. Prueba con diferentes tamaños de texto y longitudes de extracto (temas y plugins pueden cambiar la longitud).
  4. No uses imágenes de gran tamaño en miniaturas define dimensiones y object-fit para evitar reflows.

Problemas comunes y soluciones

Checklist final antes de publicar

  1. Hacer respaldo del tema o trabajar en child theme.
  2. Probar la página de búsqueda con términos cortos y largos, mayúsculas/minúsculas y caracteres especiales.
  3. Validar accesibilidad y responsive en varios dispositivos.
  4. Comprobar rendimiento y evitar cargar recursos innecesarios en páginas no relacionadas.

Conclusión

Con pequeños cambios de CSS y, si es necesario, un par de snippets PHP, puedes transformar la página de resultados de búsqueda en una experiencia más clara, consistente y visualmente atractiva. Utiliza body.search como scope, prueba en distintos dispositivos y mantén la accesibilidad como prioridad. Implementa los ejemplos anteriores adaptándolos al marcado y clases de tu tema para obtener los mejores resultados.



Leave a Reply

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