Paginação em pesquisa avançada
-
Olá pessoal, estou tentando fazer uma paginação em uma pesquisa personalizada. Até consegui mostrar a quantidade de páginas correta, porém quando clica no link para próximo ou no número da página, dá como página não encontrada (404).
Se alguém poder me ajudar agradeço muito.Segue o código completo da página:
`<?php
/*
Template Name: TPL Legislação
*/
get_header();$is_search = count( $_GET );
?>
<!– Main –>
<div class=”container”>
<div class=”row”>
<div class=”col-sm-12 col-md-12 col-lg-9 col-xl-9 col-xxl-9 mt-3 mb-3″ style=”background-color: #fff;”>
<div class=”row”>
<div class=”col”>
<h1 class=”titulo-page”>Legislação</h1>
<hr>
<p class=”text-center”>Utilize os campos abaixo para pesquisar as Leis Municipais</p><div class=”card p-3″>
<form action=”<?php echo home_url(‘legislacao/’); ?>”>
<div class=”form-group”>
<label> Digite a palavra:</label>
<input type=”text” class=”form-control mb-3″ name=”keyword” placeholder=”Digite a palavra que deseja pesquisar”
value=”<?php echo isset($_GET[‘keyword’]) ? $_GET[‘keyword’] : ” ?>”>
</div><div class=”row”>
<div class=”form-group col-md-8″>
<label>Selecione o tipo:</label>
<select name=”tipo” class=”form-select mb-3″>
<option value=””>Selecione o tipo</option><option
<?php if( isset($_GET[‘tipo’]) && ($_GET[‘tipo’] == “leiordinaria”)): ?>
selected
<?php endif; ?>
value=”leiordinaria”>Lei Ordinária</option><option
<?php if( isset($_GET[‘tipo’]) && ($_GET[‘tipo’] == “leicomplementar”)): ?>
selected
<?php endif; ?>
value=”leicomplementar”>Lei Complementar</option><option
<?php if( isset($_GET[‘tipo’]) && ($_GET[‘tipo’] == “decreto”)): ?>
selected
<?php endif; ?>
value=”decreto”>Decreto</option>
</select>
</div><div class=”form-group col-md-4″>
<label> Digite o ano:</label>
<input type=”number” class=”form-control mb-3″ name=”ano” placeholder=”Digite o ano”
value=”<?php echo isset($_GET[‘ano’]) ? $_GET[‘ano’] : ” ?>”>
</div></div>
<div class=”d-grid gap-2″>
<button class=”btn btn-primary” type=”submit”><h5>Pesquisar</h5></button>
</div></form>
</div><?php //parametros para mostrar o resultado
$args = [
‘paged’ => get_query_var(‘paged’, 1),
‘post_type’ => ‘legislacao’,
‘posts_per_page’ => 10,
‘meta_query’ => [
‘relation’ => ‘AND’,
],‘date_query’ => [],
];
if(isset($_GET[‘keyword’])) //recebe a palavra chave
{
if(!empty($_GET[‘keyword’]))
{
$args[‘s’] = sanitize_text_field($_GET[‘keyword’]);
}}
if(isset($_GET[‘tipo’])) //recebe o tipo de legislação
{
if(!empty($_GET[‘tipo’]))
{
$args[‘meta_query’][] = array(
‘key’ => ‘tipo’,
‘value’ => sanitize_text_field($_GET[‘tipo’]),
‘compare’ => ‘=’,);
}
}
if(isset($_GET[‘ano’])) //recebe o ano da legislação
{
if(!empty($_GET[‘ano’]))
{
$args[‘date_query’][] = array(
‘year’ => sanitize_text_field($_GET[‘ano’]),
‘compare’ => ‘=’,
‘column’ => ‘post_date’ ,);
}
}
if($is_search)
{
$query = new WP_Query($args);}
?>
<?php if($is_search): ?>
<?php if($query->have_posts() ) : //se houver resultado mostre?><div class=”m-3 text-center”>
<h5>
Resultado da sua pesquisa:
</h5></div>
<?php while ( $query->have_posts() ) : $query->the_post(); ?>
<?php $arquivo = get_field(‘arquivo’);?>
<?php $tipo = get_field(‘tipo’); ?><div class=”row m-1″>
<div class=”col-md-2 d-flex justify-content-center align-items-center”>
<i class=”fas fa-file-pdf iconeedi”></i>
</div>
<div class=”col-md-10 col-lg-10″>
<h4><?php echo $tipo[‘label’]; ?> – <?php the_title(); ?>/<?php echo get_the_date(‘Y’); ?>
</h4>
<small class=”text-muted”> <i class=”far fa-calendar-alt mb-2″></i>
<?php echo get_the_date(); ?></small>
<?php the_content(); ?>
</div>
</div></div>
<?php endwhile; ?>
<!– paginação –>
<div class=”col text-center”>
<?php echo paginate_links(array(
‘total’ => $query->max_num_pages
));
?>
</div>
<!– paginação –><?php wp_reset_postdata();?>
<?php else: //se não houver resultado faz isto?>
<div class=”alert alert-danger mt-3 text-center” role=”alert”>
Não encontramos nenhuma legislação! <br>
Faça uma nova pesquisa.
</div><?php endif; ?>
<?php endif; ?></div>
</div>
</div>
<!– fim main–><!– barra lateral –>
<div class=”col-xs-12 col-sm-12 col-md-12 col-lg-3 col-xl-3 col-xxl-3 pt-3″>
<h5 class=”text-cinza”>Acesso Rápido</h5>
<?php get_template_part(‘template-parts/acesso-rapidolateral’); ?></div>
</div>
</div></div>
<?php get_footer(); ?>
- O tópico ‘Paginação em pesquisa avançada’ está fechado para novas respostas.