Suporte » Desenvolvendo com WordPress » Mostrar posts da categoria ativa

  • Olá pessoal,

    No meu arquivo category.php, ele mostra os posts da categoria ativa com o seguinte código:

    <?php foreach( ( get_the_category() ) as $category ) {
     $current_category = new WP_Query('category_name=' . $category->category_nicename . '&showposts=3&orderby=rand' . '&paged=' . $paged);
     while ($current_category->have_posts()) : $current_category->the_post();?>
    
     <!-- código -->
    
     <?php endwhile; ?>
     <?php } ?>

    Está funcionando, o problema é a paginação que não consigo fazer funcionar. Ela não aparece. Alguém pode me ajudar?

    Obrigado.

Visualizando 2 respostas - 1 até 2 (de um total de 2)
  • Samir,

    Podes enviar uma cópia da tela para vermos o que está acontecendo? Não vi como tu estás configurando a variável $paged e ativa a paginação.

    De qualquer maneira, me parece que tu não adicionaste o código para mostrar a paginação, justamente. Usa a função paginate_links() para isso. Por exemplo:

    <div class="paginacao">
        <?php 
            echo paginate_links( array(
                'base'         => str_replace( 999999999, '%#%', esc_url( get_pagenum_link( 999999999 ) ) ),
                'total'        => $query->max_num_pages,
                'current'      => max( 1, get_query_var( 'paged' ) ),
                'format'       => '?paged=%#%',
                'show_all'     => false,
                'type'         => 'plain',
                'end_size'     => 2,
                'mid_size'     => 1,
                'prev_next'    => true,
                'prev_text'    => sprintf( '<i></i> %1$s', __( 'Posts recentes', 'text-domain' ) ),
                'next_text'    => sprintf( '%1$s <i></i>', __( 'Posts anteriores', 'text-domain' ) ),
                'add_args'     => false,
                'add_fragment' => '',
            ) );
        ?>
    </div>

    Olá Marco,

    Na verdade eu uso paginação com bootstrap com um código no meu arquivo functions.php:

    function sdcom_numeric_posts_nav() {
    
      if( is_singular() )
        return;
    
      global $wp_query;
    
      /** Stop execution if there's only 1 page */
      if( $wp_query->max_num_pages <= 1 )
        return;
    
      $paged = get_query_var( 'paged' ) ? absint( get_query_var( 'paged' ) ) : 1;
      $max   = intval( $wp_query->max_num_pages );
    
      /** Add current page to the array */
      if ( $paged >= 1 )
        $links[] = $paged;
    
      /** Add the pages around the current page to the array */
      if ( $paged >= 3 ) {
        $links[] = $paged - 1;
        $links[] = $paged - 2;
      }
    
      if ( ( $paged + 2 ) <= $max ) {
        $links[] = $paged + 2;
        $links[] = $paged + 1;
      }
    
      echo '<div class="styled-pagination padd-top-30 text-left"><ul>' . "\n";
    
      /** Botão Anterior */
      if ( get_previous_posts_link() )
        printf( '<li><a %s</a></li>' . "\n", get_previous_posts_link('<span class="fa fa-angle-left"></span>', '', 'yes') );
    
      /** Link to first page, plus ellipses if necessary */
      if ( ! in_array( 1, $links ) ) {
        $class = 1 == $paged ? ' class="active"' : '';
        printf( '<li%s><a href="%s">%s</a></li>' . "\n", $class, esc_url( get_pagenum_link( 1 ) ), '1' );
        if ( ! in_array( 2, $links ) )
          echo '<li>…</li>';
      }
    
      /** Link to current page, plus 2 pages in either direction if necessary */
      sort( $links );
      foreach ( (array) $links as $link ) {
        $class = $paged == $link ? ' class="active"' : '';
        printf( '<li%s><a href="%s">%s</a></li>' . "\n", $class, esc_url( get_pagenum_link( $link ) ), $link );
      }
    
      /** Link to last page, plus ellipses if necessary */
      if ( ! in_array( $max, $links ) ) {
        if ( ! in_array( $max - 1, $links ) )
          echo '<li>…</li>' . "\n";
    
        $class = $paged == $max ? ' class="active"' : '';
        printf( '<li%s><a href="%s">%s</a></li>' . "\n", $class, esc_url( get_pagenum_link( $max ) ), $max );
      }
    
      /** Botão Próximo */
      if ( get_next_posts_link() )
        printf( '<li><a %s</a></li>' . "\n", get_next_posts_link('<span class="fa fa-angle-right"></span>', '', 'yes') );
    
      echo '</ul></div>' . "\n";
    
    }

    E chamo ele na página:

    <?php sdcom_numeric_posts_nav(); ?>

Visualizando 2 respostas - 1 até 2 (de um total de 2)
  • Você deve estar conectado para responder a este tópico.