Supongo que debería ser algo así como usar la cláusula LIKE para los operadores category_name o category_in en la consulta de impuestos.
$argumentos = get_posts(matriz(
'campos' => 'identificadores',
'post_type' => 'publicar',
'post_status' => 'publicar',
'publicaciones_por_página' => -1,
's' => $_REQUEST['s'] ? $_REQUEST['s'] : '' ,
'tax_query' => matriz (
formación(
'taxonomy' => 'NOMBRE DE LA TAXONOMÍA',
'campo' => 'babosa',
'terms' => 'SLUG OF the TERM', // LIKE (aquí debería haber cualquier cláusula LIKE, etc.)
),
)
));
Cómo lograr este escenario, significa que cuando el usuario ingresa cualquier palabra clave que coincida con el nombre de la categoría, debe extraer todos los resultados de esa categoría junto con los resultados de búsqueda generales.
Ejemplo: en la barra de búsqueda, el usuario escribe " ABC " y hay una categoría disponible con el nombre " ABC Park ", luego debe extraer los resultados de esta categoría junto con los resultados que tienen títulos de publicaciones y contenido que contienen "ABC".
De acuerdo... se me ocurrió una solución, obtuve todos los ID de categoría de los terms de la tabla con una consulta LIKE, luego, en otra consulta, pasé esta matriz como un parámetro de categoría. Aquí está el código.
$term_ids=array(); $cat_Args="SELECT * FROM $wpdb->terms WHERE name LIKE '%".$_REQUEST['s']."%' "; $cats = $wpdb->get_results($cat_Args, OBJECT); array_push($term_ids,$cats[0]->term_id); $q1 = get_posts(array( 'fields' => 'ids', 'post_type' => 'post', 'post_status' => 'publish', 'posts_per_page' => -1, 's' => $_REQUEST['s'] ? $_REQUEST['s'] : '' )); $q2 = get_posts(array( 'fields' => 'ids', 'post_type' => 'post', 'post_status' => 'publish', 'posts_per_page' => -1, 'category' =>$term_ids )); $unique = array_unique( array_merge( $q1, $q2 ) ); $posts = get_posts(array( 'post_type' => 'post', 'post__in' => $unique, 'posts_per_page' => -1 )); if ($posts ) : foreach( $posts as $post ) : //show results endforeach; endif;Pero aún así me gustaría una forma más mínima y precisa. :)