Pagination not working – custom search form & custom result template

I am using custom search form and custom template to display the results according to the solution given in here
Everything is working perfect except the pagination which doesn’t seem to work at all

Overview

  • Custom post type : job_listing
  • Custom taxonomy : job_listing_type
  • custom fields as key: _job_location

Here is the code for search form :

<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>

Here is the search result template

<?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($post_type =='job_listing'):
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(); ?>

Result on initial search, url is like

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

After i hit next then url becomes

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

but nothing happens, result remains same

I have never done this before so please help me out on this

Read more here: Pagination not working – custom search form & custom result template

Leave a Reply

Your email address will not be published. Required fields are marked *