J'utilise un formulaire de recherche personnalisé et un modèle personnalisé pour afficher les résultats en fonction de la solution donnée dans ici / Tout fonctionne parfaitement sauf la pagination qui ne semble pas fonctionner du tout.
Vue d'ensemble
Voici le code pour le formulaire de recherche:
<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>
Voici le modèle de résultat de recherche
<?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( '←Newer', $loop->max_num_pages ); ?></span>
<span class="next"><?php next_posts_link( 'Older →', $loop->max_num_pages ); ?></span>
</div>
<?php wp_reset_query();?>
<?php get_footer(); ?>
Résultat de la recherche initiale, l'URL est comme
http://example.com/?search=advanced&terms%5B%5D=.Eat&job_listing=
Après avoir frappé ensuite, l'URL devient
http://example.com/page/2/?search=advanced&terms%5B0%5D=.Eat&job_listing
mais rien ne se passe, le résultat reste le même
Je n'ai jamais fait cela auparavant, alors aidez-moi s'il vous plaît
j'ai vu ceci: next_posts_link
Vous devez utiliser wp_reset_postdata lorsque vous utilisez new WP_QUERY (), et cela
<div class="pagination" id="blog-pagination">
<span class="previous" ><?php previous_posts_link( '←Newer', $loop->max_num_pages ); ?></span>
<span class="next"><?php next_posts_link( 'Older →', $loop->max_num_pages ); ?></span>
</div>
entrer dans if ($ loop-> have_posts ()):?> condition