Hola soulip. En mi caso el problema era paginar, mostrar los resultados en otra página es válido pero cuando pulsas el enlace de la segunda página has perdido los datos de _POST que son los que están dándote los parámetros para la búsqueda, y que deben mantenerse en la pag=2.
En mi caso lo que hice fue esto:
Código PHP:
<?php
if($_POST){
$_SESSION['pais'] = $_POST['pais'] ;
$_SESSION['parametro1'] = $_POST['parametro1'] ;
$_SESSION['parametro2'] = $_POST['parametro2'] ;
$_SESSION['parametro3'] = $_POST['parametro3'] ;
$_SESSION['parametro4'] = $_POST['parametro4'] ;
$_SESSION['parametro5'] = $_POST['parametro5'] ;
$_SESSION['parametro6'] = $_POST['parametro6'] ;
$_SESSION['parametro7'] = $_POST['parametro7'] ;
} else { }
?>
Con esto al inicio de la página de resultados, se mantienen en session si no vienen por $_POST.
Y luego las consultas son del tipo :
Código PHP:
wp_reset_query();
if($_GET['pag']){ $pag = $_GET['pag']; }else{ $pag = 1; }
$args = array(
'post_type' => 'imagen',
'order' => 'DESC',
'posts_per_page' => '10',
'paged' => $pag ,
'order_by' => 'date',
'meta_query' => array(),
'tax_query' => array()
);
// Si hay categoría, la agrega a los argumentos del query_posts
if($_SESSION['categoria'] != "%"){
array_push($args['tax_query'],
array(
'taxonomy' => 'category',
'field' => 'id',
'terms' => $_SESSION['categoria']
)
);
}
// Si hay país, la agrega a los argumentos del query_posts
if($_SESSION['pais'] != "%"){
array_push($args['meta_query'],
array(
'key' => 'imagen_pais__',
'value' => $_SESSION['pais'],
'type' => 'numeric',
'compare' => '='
)
);
}
Y asi sucesivamente.