La paginación no funciona con el formulario de búsqueda personalizado y la plantilla de resultados personalizada

4

Estoy utilizando un formulario de búsqueda personalizado y una plantilla personalizada para mostrar los resultados según la solución dada en aquí Todo funciona perfectamente, excepto la paginación, que parece no funcionar en absoluto

Descripción general

  • Tipo de publicación personalizada: job_listing
  • Taxonomía personalizada: job_listing_type
  • campos personalizados como clave: _job_location

Aquí está el código para el formulario de búsqueda:

<form method="get" id="advanced-searchform" role="search" action="<?php echo esc_url( home_url( '/' ) ); ?>">
    <input type="hidden" name="search" value="advanced">

        <select id="my-select1" class="js-example-basic-single isotopeselect" data-filter-group="proyectos" multiple="multiple" name="terms[]">

        <?php foreach ($job_terms as $job_term): ?>
          <option value=".<?php echo str_replace(' ', '-', str_replace('&', 'and', html_entity_decode($job_term)));?>"><?php echo $job_term;?></option>
        <?php endforeach; ?>

        </select>    
        <button type="submit"><span>search</span></button>
    <input type="hidden" name="job_listing" value=""/>
</form>

Aquí está la plantilla de resultados de búsqueda

<?php 
get_header();
$terms=array();
$all=($_REQUEST); 


if(isset($_REQUEST["terms"])){
    $myterms=$all["terms"];
    foreach ($myterms as $myterm) {
    $myterm=str_replace(".","",$myterm);
    $terms[]=$myterm;    
    }
}

if($terms){
    $tax_query[] =  array(
                        array(
                        'taxonomy' => 'job_listing_type',
                        'field' => 'name',
                        'terms' => $terms
                      ) );
}

$post_type = 'job_listing';
$paged= (get_query_var('paged' )) ? get_query_var('paged'):1;
$args         =  array(
    'paged'=>$paged,
    'post_type'=>$post_type,
    'posts_per_page'=>1, 
    'tax_query' => $tax_query,
    );
$loop = new WP_Query( $args );     
if($loop->have_posts()):?>

    <div class="my-services">
        <?php    
        while($loop->have_posts()):$loop->the_post();              
        the_title();

        endwhile;
        ?>

    </div>
<?php endif; ?>
    <div class="pagination" id="blog-pagination">
      <span class="previous" ><?php previous_posts_link( '&larr;Newer', $loop->max_num_pages  ); ?></span>
      <span class="next"><?php next_posts_link( 'Older &rarr;', $loop->max_num_pages  ); ?></span>
    </div>
    <?php wp_reset_query();?>     

<?php get_footer(); ?>

Resultado en la búsqueda inicial, la url es como

http://example.com/?search=advanced&terms%5B%5D=.Eat&job_listing=

Después de que golpee a continuación, la url se convierte en

enlace

pero no pasa nada, el resultado permanece igual

Nunca he hecho esto antes, por favor, ayúdame con esto

    
pregunta aryan 23.04.2017 - 23:27

1 respuesta

1

He visto esto: next_posts_link

Debes usar wp_reset_postdata cuando uses WP_QUERY () nuevo, y esto

<div class="pagination" id="blog-pagination">
  <span class="previous" ><?php previous_posts_link( '&larr;Newer', $loop->max_num_pages  ); ?></span>
  <span class="next"><?php next_posts_link( 'Older &rarr;', $loop->max_num_pages  ); ?></span>
</div>

entra en if ($ loop- > have_posts ()):? > condición

    
respondido por el ClodClod91 11.05.2017 - 13:08

Lea otras preguntas en las etiquetas