¿Cómo crear buscador interno que busque los ingredientes del productos ?
-
Necesito crear un buscador interno en la web para encontrar los productos del catálogo por sus ingredientes, y no por categorías, SKU, etiquetas, etc…
Estaba buscando la opción de encontrar como personalizar sin usar un PluginEl hándicap es que necesito buscar los productos por ingredientes que ciertos productos no contienen. Es decir, hay personas que son alérgicas a algunos productos y no pueden comer varios ingredientes, y la necesidad seria es darles la oportunidad de buscar productos que no tengan los ingredientes a los que son alérgicos.
Por ejemplo, introduce la palabra “azúcar” en el buscador, y aparecen todos los productos que no tienen azúcar entre sus ingredientesSeguro que a alguien ya se le ha ocurrido esta idea, pero no encuentro ningún ejemplo para guiarme
En el caso que muestro a continuación, la búsqueda está filtrada por categorías y etiquetas.<form role="search" method="get" class="search-form" action="<?php echo home_url( '/' ); ?>"> <label> <span class="screen-reader-text"><?php echo _x( 'Search for:', 'label' ) ?></span> <input type="search" class="search-field" placeholder="<?php echo esc_attr_x( 'Search …', 'placeholder' ) ?>" value="<?php echo get_search_query() ?>" name="s" title="<?php echo esc_attr_x( 'Search for:', 'label' ) ?>" /> </label> <select id="category_name" name="category_name"> <option value="">Todas</option> <?php $categories = get_categories(); foreach ($categories as $key => $category) {?> <option value="<?php echo $category->slug;?>"><?php echo $category->name;?></option> <?php }?> </select> <select id="tag" name="tag"> <option value="">Todas</option> <?php $tags = get_tags(); foreach ($tags as $key => $tag) {?> <option value="<?php echo $tag->slug;?>"><?php echo $tag->name;?></option> <?php }?> </select> <input type="submit" class="search-submit" value="<?php echo esc_attr_x( 'Search', 'submit button' ) ?>" /> </form>
Sé que puedes limitar el contenido de búsqueda, por ejemplo con
post_type
<input type="hidden" name="post_type" value="post" /> function my_custom_searchengine($query) { if ($query->is_search && !is_admin()) { $query->set('post_type', array('post')); } return $query; } add_filter( 'pre_get_posts', 'my_custom_searchengine' );
Pero no se cuales son los
posts
que debo agregar, no se como realizar esta búsqueda del campo descripción del producto, no se como hacer que funcione, y encontrar productos que no contengan los ingredientes de búsqueda
Todo seria en modificar los «select»campos, en el buscador, pero no entiendo cual seria elQuery
que se debería agregar en elvalues
de laselect
, tomando en cuenta que los ingredientes estan solo en la descripción del producto.
Dado que WordPress le permite extender la búsqueda a campos personalizados, esto podría hacerse conmata_query
.¿Cómo podría conseguir esto?
¿Debo crear un “array” con los ingredientes de todos los productos?
- Debes estar registrado para responder a este debate.