web-dev-qa-db-ja.com

カスタム検索フォームとカスタム結果テンプレートでページ付けが機能しない

here で与えられた解決法に従って結果を表示するために私はカスタム検索フォームとカスタムテンプレートを使用しています。

概要

  • カスタム投稿の種類:job_listing
  • カスタム分類法:job_listing_type
  • キーとしてのカスタムフィールド:_job_location

これが検索フォームのコードです。

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

これが検索結果のテンプレートです

<?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(); ?>

最初の検索結果、URLは

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

私が次にヒットした後、URLはになります

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

しかし何も起こらない、結果は同じまま

私は前にこれをやったことがないので、これを手伝ってください

4
aryan

私はこれを見ました: next_posts_link

New WP_QUERY()を使うときはwp_reset_postdataを使わなければなりません。

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

if($ loop-> have_posts()):?>に行きます

1
ClodClod91