Suscríbete a DecodeCMS:
Si tienes una tienda y estas usando una búsqueda genérica, es posible que te interese cambiar el comportamiento para que la búsqueda sea sólo de productos.
Resultado Final
Al final queremos obtener algo similar a la siguiente imagen en donde la búsqueda sólo se limita a mostrar productos de WooCommrece.
Código para limitar la búsqueda a productos
Puedes agregar el siguiente código como parte del archivo functions.php de tu tema hijo o usando algún plugin de Snippets
add_filter('pre_get_posts','dcms_search_only_products');
function dcms_search_only_products($query) {
if ( ! is_admin() && $query->is_search() ) {
$query->set('post_type', 'product');
$query->set( 'wc_query', 'product_query' );
}
return $query;
}
- Usamos el Hook de filtro pre_get_posts que hace referencia a la función dcms_search_only_products
- Dentro de la función validamos si estamos en el front-end del sitio y si la consulta es una búsqueda
- El parámetro aceptado por la función es el objeto $query, podemos cambiar los métodos o atributos
- Establecemos par el objeto $query que se limite a la búsqueda de productos
Conclusión
Como has podido comprobar, puedes limitar la búsqueda genérica a cualquier Custom Post Type de WordPress. En este artículo hemos visto como limitarlo a la búsqueda de productos a través de código.


Los resultados que muestra son como post en lugar de como un producto de WooCommerce, hay alguna manera de solventarlo para darle una funcionalidad real?
Hola, te refieres al diseño de los resultados?, ten en cuenta que la búsqueda usa el mismo diseño para cualquier tipo de contenido.
Saludos.