Consulta de Búsqueda Personalizada
Me gustaría configurar una página de búsqueda personalizada que haga lo siguiente:
El usuario marca varios elementos en un formulario que le gustaría ver en su búsqueda (básicamente eligiendo de una lista de etiquetas).
Los resultados devueltos coinciden con todas las etiquetas que eligió (usando AND en lugar de OR).
Un ejemplo específico sería:
Devolver todas las entradas en la categoría "Área" donde las etiquetas = "escuela primaria" Y "parque"
- ¿Necesito nombrar mi formulario de búsqueda de alguna manera en particular?
- En la página de resultados de búsqueda, ¿cómo codifico la consulta personalizada para que obtenga todas las entradas dentro de la categoría Área y que tengan todas las etiquetas que el usuario eligió en el formulario de búsqueda?

1) Puedes usar las plantillas search.php
y searchform.php
como punto de partida. Crear una página de búsqueda Codex
2) En cuanto a la consulta personalizada, puedes usar el hook pre_get_posts
para verificar si estás en una página de búsqueda, luego obtienes tus valores de $_GET
y modificas la consulta según corresponda. Referencia de Acción - pre_get_posts
Hay muchísimos tutoriales en línea y preguntas en este foro que pueden ayudarte. Algunos son Simples y otros más Complejos. Tendrás que investigar realmente para lograrlo. ¡Espero que te ayude!

Para realizar una búsqueda personalizada, necesitarás estos inputs en tu HTML. Puedes usar los atributos name y value para pasarlos a tu URL.
<input type="hidden" class="category" name="category_name" value="recording">
<input type="hidden" class="type" name="post_type" value="post">
<input type="text" class="search-bar" id="global-search"><button class="search-submit" type="submit" id="search-submit">
Luego, en tu archivo de scripts, deberás construir tu URL.
// actualizar tipo de búsqueda
let type = $('input.type').val();
if(type === 0 || type == undefined){
type = "";
}
// actualizar categoría de búsqueda
let category = $('input.category').val();
if(category === 0 || category == undefined){
category = "";
}
// actualizar palabra clave de búsqueda
keyword = '/?s=' + $(this).val() + '&post_type=' + type + '&category_name=' + category;
$('.search-keyword').attr('data-target','/cimuk' + keyword);
$('.search-keyword .label').text('Buscar ' + '"' + $(this).val() + '"');
//llamar a esta función al enviar o presionar enter
function goKeyword(){
window.location.href = $('.search-keyword').data('target')
}
Luego puedes agregar este filtro a tu functions.php. Esto tomará las variables de la URL y las pasará a la consulta de búsqueda.
//Filtrar tipo de publicación en búsqueda
function mySearchFilter($query) {
$post_type = $_GET['post_type'];
$category = $_GET['category_name'];
if (!$post_type) {
$post_type = 'any';
}
if (!$category){
$category = null;
}
if ($query->is_search) {
$query->set('post_type', $post_type);
$query->set('category_name', $category);
};
return $query;
};
add_filter('pre_get_posts','mySearchFilter');
Los resultados deberían cargarse en tu search.php
