Suporte » Desenvolvendo com WordPress » Problemas com a paginação

  • jackrs

    (@jackrs)


    Gostaria de saber o que pode estar ocorrendo com essa estrutura de wp_query abaixo, pois em alguns determinados casos da busca a mesma quando vai para a 2 página mesmo havendo posts para exibir, cai no 404.

    Estrutura é de custom post.
    Plugin de paginação = wp pagenavi

    Estrutura citada acima

    <?php
    $date = date(‘Ymd’);
    $paged = ( get_query_var( ‘paged’ ) ) ? absint( get_query_var( ‘paged’ ) ) : 1;
    $args = array(
    ‘post_type’ => ‘cursos’,
    ‘post_status’ => ‘publish’,
    ‘title ‘ => $s,
    ‘paged’ => $paged,
    //’paged’ => (get_query_var(‘paged’)),
    ‘posts_per_page’ => ’16’,
    ‘orderby’ => ‘meta_value_num’,
    ‘meta_key’ => ‘inicio_curso’,
    ‘order’ => ‘ASC’,
    ‘meta_query’ => array(
    array(
    ‘key’ => ‘inicio_inscricoes’,
    ‘compare’ => ‘<=’,
    ‘value’ => $date
    ),
    array(
    ‘key’ => ‘fim_inscricoes’,
    ‘compare’ => ‘>=’,
    ‘value’ => $date
    )
    )
    );
    $cursos = new WP_Query($args);
    if($cursos->have_posts()){
    echo ‘<div class=”row cards”>’;
    while ($cursos->have_posts()) : $cursos->the_post();
    echo the_title();
    endwhile;
    echo ‘<div class=”container-fluid”>’;
    wp_pagenavi( array( ‘query’ => $cursos ) );
    echo ‘</div>’;
    echo ‘</div>’;
    echo ‘<div class=”clearfix”></div>’;
    }
    wp_reset_postdata();
    wp_reset_query();

Visualizando 4 respostas - 1 até 4 (de um total de 4)
  • rodineicosta

    (@rodineicosta)

    Oi @jackrs!

    Já tentou utilizar a função wp_link_pages para sua paginação? Verifique aqui.

    Criador do tópico jackrs

    (@jackrs)

    Já tentei essa função também mas o erro persisti.
    Testei também com outros plugins de paginação e também com a estrutura de código abaixo, e mesmo assim o erro persisti.
    Fiz também uma outra instalação de WP só com alguns CP posts de teste para testar a paginação e persistiu.
    Verifiquei também se é um erro de slug/id/post que possa estar ocorrendo entre posts e páginas mas também não é.

    Código que cito acima que em outros projetos me ajudaram:

    global $wpdb;
    $total_record = count($wpdb->get_results($sql, ARRAY_A));
    $paged = get_query_var(‘paged’) ? get_query_var(‘paged’) : 1;
    $post_per_page = get_option(‘posts_per_page’);
    $offset = ($paged-1)*$post_per_page;
    $max_num_pages = ceil($total_record/ $post_per_page);
    $wp_query->found_posts = $total_record;
    $wp_query->max_num_pages = $max_num_pages;
    $limit_query = ” LIMIT “.$post_per_page.” OFFSET “.$offset;
    $sql_final = $sql.$limit_query;
    $result = $wpdb->get_results($sql_final,OBJECT);

    Vou continuar a debugar e a testar até isso se resolver, obrigado.

    rodineicosta

    (@rodineicosta)

    Oi @jackrs!

    Esqueci de perguntar algumas coisas:

    • Qual a versão do WordPress instalada?
    • Já tentou desativar plugins e verificar se há conflito?
    • Verificou o log de erro para encontrar alguma informação relativa ao problema?

    Caso tenha atualizado o WordPress, desativado os plugins e verificado o log de erro e ainda assim o erro persistir, tente algo como o código a seguir:

    $args = array(     
       'post_type' => 'cursos',
       'paged'     => get_query_var('paged') ? get_query_var('paged') : 1
     );
    $loop = new WP_Query( $args );
    
    if( $loop->have_posts() ) {
       while( $loop->have_posts() ) {
          $loop->the_post();
       }
    }
    echo paginate_links( array(
       'base' => str_replace( 999999999, '%#%', get_pagenum_link( 999999999 ) ),
       'format' => '?paged=%#%',
       'current' => max( 1, get_query_var('paged') ),
       'total' => $loop->max_num_pages,
       'prev_next' => true,
       'prev_text' => 'Página Anterior',
       'next_text' => 'Próxima Página',
       'before_page_number' => '-',
       'after_page_number' => '>',
       'show_all' => false,
       'mid_size' => 3,
       'end_size' => 1
    ));
    wp_reset_postdata();
    Criador do tópico jackrs

    (@jackrs)

    Versão é a última.
    Não tem nenhum plugin de conflito.

    Sim com essa estrutura funciona, minha ideia era entender porque em algum casos utilizando o page_navi o mesmo se perde.

    Porém obrigado.

Visualizando 4 respostas - 1 até 4 (de um total de 4)
  • O tópico ‘Problemas com a paginação’ está fechado para novas respostas.