Saltar al contenido principal

La página de resultados

Los resultados de búsqueda con la plantilla del catálogo: lo buscado en el encabezado, los filtros y la rejilla

See all results —y Enter en el diálogo— llevan a los resultados de búsqueda de WooCommerce, /?s=hoodie&post_type=product. No hay plantilla que montar para esa página: usa tu archivo de producto, el mismo de /shop/ y de tus categorías, con sus filtros, su barra y su rejilla. Mejora el catálogo y los resultados de búsqueda lo siguen.

Sólo necesita un encabezado que diga qué se buscó. En la cabecera del catálogo:

1. Una condición sobre url.parameter.s, con el encabezado de la búsqueda dentro. Etch rellena {url.parameter.s} con lo que se escribió, así que el título puede decir Search results for “{url.parameter.s}”.

2. Los encabezados que ya tienes —el de la categoría y el de la tienda— dentro de una segunda condición, !url.parameter.s. Con el !, que es como Etch escribe «no»: sin ésta, una búsqueda enseña su encabezado y el de la tienda.

Una búsqueda enviada vacía sigue siendo una búsqueda para WordPress; la segunda condición le da el encabezado de la tienda.

Lo que viene con ella, sin configurar nada:

  • Las migas dicen Home / Shop / Search results for “hoodie”.
  • La barra del catálogo avisa cuando no hay nada — y, con Rescue empty searches encendido, de que enseña «hoodie» porque nada coincidía con «hodie». El encabezado mantiene lo que se escribió.
  • Los filtros cuentan lo que encontró la búsqueda, no la tienda entera.
Un solo resultado abre el producto

Cuando una búsqueda deja exactamente un producto —filtros incluidos—, WooCommerce va directo a la ficha de ese producto. Es cosa del propio WooCommerce: add_filter( 'woocommerce_redirect_single_search_result', '__return_false' ); deja a quien compra en los resultados.

¿Ya tienes una página de búsqueda propia?

Una plantilla product-search-results que el sitio haya cambiado sigue ganando al catálogo: una plantilla que hizo el sitio gana a una de fábrica. De fábrica es la página del propio WooCommerce — y también la copia intacta que Etch guarda en la base de datos cada vez que se abre su builder, que por eso no cuenta. Lo mismo con /color/blue/: la página de atributos de WooCommerce sólo gana si alguien la cambió.

Para desarrolladores: qué tipos de contenido usan su archivo en sus búsquedas y en los archivos de sus taxonomías es el filtro fancy_etch/templates/archive_types — WooCommerce añade product. Devuelve una lista vacía para dejar la elección de plantilla a WordPress y WooCommerce.

Tus búsquedas siguen usando la página de WooCommerce​

Montaste el catálogo, no tocaste la plantilla de búsqueda y la página de resultados sigue sin ser la tuya. Pasa cuando la product-search-results guardada ya no es la página intacta de WooCommerce: una actualización de WooCommerce, una visita a Apariencia → Editor o abrir esa página en Etch —que guarda lo que encuentra— dejan una copia que cuenta como del sitio. Y no puedes borrarla: WordPress no borra una plantilla que registra un plugin.

La tarjeta Search & Catalogue de los ajustes, con el interruptor Search results use the catalogue apagado

Enciende Search results use the catalogue, en Fancy Etch → Shop → Search & Catalogue. Con eso, las búsquedas de productos las dibuja archive-product tenga lo que tenga por delante, y no cambia nada más — /color/blue/ y el resto de las reglas se quedan como están. Déjalo apagado si esa página de resultados sí la diseñas tú.

Para desarrolladores, el mismo interruptor es fancy_etch/woo/search_uses_catalog, y para cualquier otro tipo de contenido, fancy_etch/templates/force_archive:

add_filter(
'fancy_etch/templates/force_archive',
static fn( $forced, $type ) => 'recipe' === $type ? true : $forced,
10,
2
);