Ver Mensaje Individual
  #6 (permalink)  
Antiguo 22/08/2012, 13:00
adriantht
 
Fecha de Ingreso: abril-2011
Mensajes: 72
Antigüedad: 13 años
Puntos: 0
Respuesta: Paginacion Resultados de Búsqueda con campos vacios

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.