Reply To: Búsqueda por categorías

Inicio Foros WordPress Programación Búsqueda por categorías Reply To: Búsqueda por categorías

#62155

atiquetedeveloper
Participante

Por si alguien llega a este post buscando una solución, os cuento cómo lo he solucionado, gracias a este enlace: http://webstutorial.com/wordpress-multiple-category-search/content-management-system-cms/wordpress-cms

Debemos copiar en el functions.php esta acción:

add_action( 'parse_request', 'category_search_logic', 11 );
function category_search_logic( $query ) {
if ( ! isset( $query->query_vars[ 'cat' ] ) )
return $query;
// split cat query on a space to get IDs separated by '+' in URL
$cats = explode( ' ', $query->query_vars[ 'cat' ] );
if ( count( $cats ) > 1 ) {
unset( $query->query_vars[ 'cat' ] );
$query->query_vars[ 'category__and' ] = $cats;
}
return $query;
}

Esto lo que hace es aplicar la concatenación de categorias por el simbolo +. Tras implementar esta función, si hacéis: http://www.miblog.com/?cat=1+2
Ya sólo os saldrán los posts que pertenezcan a ambas categorías.

Evidentemente, se puede aplicar a formularios de búsqueda con la cadena de texto, tal como: http://www.miblog.com/?cat=1+2&s=internet

En el post de referencia habla de que “+” es considerado como ” ” bajo algunos servidores, no ha sido mi caso. Si os ocurre, habría que parsearlo mediante la siguiente función:

function check()
{
$url = $_SERVER["REQUEST_URI"];
$query = str_replace(' ', '+', $url);
if(isset($query) && ($query != $url))
{
header('Location:'.$query);
}
}

add_action('parse_query', 'check');

Pin It on Pinterest