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 …" 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