A paginação não funciona para o formulário de pesquisa personalizada e para o modelo de resultado personalizado

4

Estou usando o formulário de pesquisa personalizada e o modelo personalizado para exibir os resultados de acordo com a solução fornecida em aqui Tudo está funcionando perfeito, exceto a paginação que parece não funcionar de todo

Visão geral

  • Tipo de postagem personalizada: job_listing
  • Taxonomia personalizada: job_listing_type
  • campos personalizados como chave: _job_location

Aqui está o código para o formulário de pesquisa:

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

Aqui está o modelo de resultado da pesquisa

<?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 na pesquisa inicial, o URL é como

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

Depois que eu clicar em seguida, o URL se torna

enlace

mas nada acontece, o resultado permanece igual

Eu nunca fiz isso antes, então por favor me ajudem com isso

    
por aryan 23.04.2017 / 23:27

1 resposta

1

Eu vi isto: next_posts_link

Você deve usar wp_reset_postdata quando usar o novo WP_QUERY (), e isso

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

vai para if ($ loop- > have_posts ()):? > condição

    
por ClodClod91 11.05.2017 / 13:08