¿Alguna vez ha trabajado en un sitio de WordPress que tiene muchos tipos de publicaciones personalizadas? Así como está, la búsqueda de WordPress es un desastre, por lo que muchos blogueros utilizan la búsqueda personalizada de Google. Bueno, estábamos trabajando en un sitio que tiene una buena cantidad de artículos de recursos, videos, libros y publicaciones de blog. Usar la búsqueda predeterminada de WordPress simplemente no fue suficiente. El uso de la Búsqueda de Google tampoco era una opción viable. Por lo tanto, decidimos crear un formulario de búsqueda avanzada que permite al usuario elegir en qué área del sitio desea buscar limitando los tipos de publicaciones personalizadas a través de casillas de verificación. Los usuarios pueden combinar sus consultas de búsqueda y, lo más importante, lo hicimos para que las casillas de verificación se guarden junto con la consulta de búsqueda. Esto le permite al usuario ver exactamente lo que buscó y puede modificar los parámetros. En este artículo, le mostraremos cómo crear un formulario de búsqueda avanzada en WordPress utilizando el poder de la consulta de búsqueda de WordPress y limitando los resultados por tipos de publicaciones personalizadas.

Lo primero que debe hacer es abrir su archivo searchform.php o donde esté almacenado su formulario de búsqueda. Luego agregue los siguientes campos dentro del código del formulario:


<input type="hidden" name="post_type[]" value="articles" />
<input type="hidden" name="post_type[]" value="post" />
<input type="hidden" name="post_type[]" value="videos" /> 
<input type="hidden" name="post_type[]" value="books" />  

No olvide reemplazar el valor con sus tipos de publicaciones personalizadas. El código anterior básicamente limita los resultados de su búsqueda a esos tipos de publicaciones. Bueno, si te diste cuenta, agregamos prácticamente todos los tipos de publicaciones disponibles, excepto las páginas. Bueno, hay una buena razón para hacerlo, a la que llegaremos más adelante. Así que asegúrese de incluir TODOS los tipos de publicaciones que desea buscar usando el botón de búsqueda principal. Estos campos están ocultos, por lo que el usuario no los ve.

A continuación, abra su archivo search.php y pegue los siguientes códigos sobre el contenido de su bucle, para que sus usuarios puedan ver las opciones en la parte superior.


<form role="search" method="get" id="searchform" action="<?php echo home_url( '/' ); ?>">
<input type="text" name="s" id="s" <?php if(is_search()) { ?>value="<?php the_search_query(); ?>" <?php } else { ?>value="Enter keywords &hellip;" onfocus="if(this.value==this.defaultValue)this.value="";" onblur="if(this.value=='')this.value=this.defaultValue;"<?php } ?> /><br />
    
<?php $query_types = get_query_var('post_type'); ?>
    
<input type="checkbox" name="post_type[]" value="articles" <?php if (in_array('articles', $query_types)) { echo 'checked="checked"'; } ?> /><label>Articles</label>
<input type="checkbox" name="post_type[]" value="post" <?php if (in_array('post', $query_types)) { echo 'checked="checked"'; } ?> /><label>Blog</label>
<input type="checkbox" name="post_type[]" value="books" <?php if (in_array('books', $query_types)) { echo 'checked="checked"'; } ?> /><label>Books</label>
<input type="checkbox" name="post_type[]" value="videos" <?php if (in_array('videos', $query_types)) { echo 'checked="checked"'; } ?> /><label>Videos</label>
    
<input type="submit" id="searchsubmit" value="Search" />
</form>

Esto agregará un cuadro de búsqueda encima de sus resultados con la consulta de búsqueda dentro del cuadro de entrada. Esto también comprobará qué tipos de publicaciones se están buscando en la consulta y marcará las casillas de verificación correspondientes. Recuerde, cómo agregamos todos los tipos de publicaciones en el campo oculto. Bueno, lo agregamos solo para que podamos ejecutar la verificación in_array y mantener las casillas de verificación marcadas. No había documentación sobre cómo hacer esto de otra manera, por lo que esta fue la mejor manera que encontramos que hace el trabajo. A continuación se muestra una vista previa de cómo se ve el cuadro de búsqueda:

A partir de ahí, el usuario puede simplemente modificar el parámetro a su gusto.

Con suerte, este artículo ayudó a los necesitados. Cuando estamos haciendo la investigación, había un montón de artículos incompletos. Encontré la respuesta de agregar las casillas de verificación en el foro de soporte de WordPress en un hilo más antiguo, sin embargo, solo estaban hablando de campos ocultos. Mientras que queríamos darles a los usuarios la opción de modificar la consulta de búsqueda. Felicitaciones a @tammyhart por indicarnos la forma correcta de hacer la consulta marcada para la variable.

.

Fuente: wpbeginner

Deja una respuesta

Tu dirección de correo electrónico no será publicada.