Suporte » Plugins » wp-pagenavi não mostra as corretamente

  • Bom dia,

    Estou com um problema com o plugin wp-pagenavi, configurei na opção Configurações >Leitura,As páginas do blog mostram no máximo” 5 post, e eu uso a opção “A página inicial mostra”\Uma página estática (selecionar abaixo) e selecionei o meu template (isso funciona).

    Coloquei no template a opção <?php wp_pagenavi(); ?/>, mas ele só mostra página 1 e não mostra corretamente. Ou seja, na 1º página deveria mostrar os 5 últimos post e na página 2 mais 5 e assim por diante, ele mostra os 5 primeiros e não cria a página 2 e tbm não traz todos os demas posts.

    Att
    Elias

Visualizando 8 respostas - 1 até 8 (de um total de 8)
  • Criador do tópico EliasIII

    (@eliasiii)

    Ninguém para poder me ajudar ou outra dica de criar páginação, se precisarem posto meu template tbm, vai que tem algo errado nele.

    Grato
    Elias

    Criador do tópico EliasIII

    (@eliasiii)

    Nada ate agora so para relembrar…rs… meu template esta abaixo:

    <?php /*	category_name*/?>
    <?php /*     Template Name:Template - Noticias */
    get_header(); ?>
    
    <div id="container">
    			<div id="content" role="main">
    		   <?php if (have_posts()) ; ?>
    
               <?php the_post(); ?>
    
    				<?php $my_query = new WP_Query('cat=20&posts_per_page=3');  ?>
                	<?php while ($my_query->have_posts()) : $my_query->the_post(); ?>
    
                        <div id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
                        <?php if ( is_front_page() ) { ?><h2 class="entry-title"><?php the_title(); ?></h2>
                        <div class="entry-meta">Publicado em <?php the_date(); ?> por <?php the_author(); ?></div>
                        <?php } else { ?><h1 class="entry-title"><?php the_title(); ?></h1>
    
    					<?php } ?>
    
    						<div class="entry-content">
    							<?php global $more; $more = FALSE; ?>
    							<?php the_content('Continue Lendo...'); ?>
    							<?php wp_link_pages( array( 'before' => '<div class="page-link">' . __( 'Pages:', 'twentyten' ), 'after' => '</div>' ) ); ?>
    						<?php if (function_exists('the_views')) {the_views();} ?>
                            <?php comments_template(); ?>
                    		</div><!-- .entry-content -->
    					</div><!-- #post-## -->
                   <?php endwhile; // end of the loop. ?>
    			<?php if(function_exists('wp_pagenavi')) { wp_pagenavi(); } ?>
                </div><!-- #content -->
    
            </div><!-- #container -->
    
    <?php get_sidebar(); ?>
    <?php get_footer(); ?>

    Grato pela atencao e desesperado
    Elias

    Deve problemas com o tema, dê uma olhada em tópicos já criados sobre o assunto:

    http://br.forums.wordpress.org/tags/paginacao
    http://br.forums.wordpress.org/tags/wp-pagenavi

    Criador do tópico EliasIII

    (@eliasiii)

    Boa tarde Diana eu postei em um resolvido para não postar repetido aqui, irei colocar o endereço: http://br.forums.wordpress.org/topic/paginacao-na-home?replies=11#post-21582

    Caso possa meu ajudar mais, resolvi em partes, porém não consigui 100%.

    Att e grato
    Elias

    Rapaz, acho que descobri o seu problema olhando seu código. Foi algo que tive no passado também quando não sabia usar a WP_Query direito.

    Creio que você queira que ele faça a paginação desse loop aqui, certo?

    <?php $my_query = new WP_Query('cat=20&posts_per_page=3');  ?>
    <?php while ($my_query->have_posts()) : $my_query->the_post(); ?>

    Bom, quando você faz loops por WP_Query, ele todo funciona dentro da variável objeto que você criou. (No caso, $my_query)

    O wp_pagenavi() irá pegar por padrão as regras principais de loop da sua página. Se você roda um loop dentro de um objeto, ele não tem nem como saber que existe! 😉

    Qual a solução? Simples, o criador do plugin pensou nisso e criou um método onde você pode “passar” para o wp_pagenavi() a variável que contém o objeto de loop que você queira paginar.

    Basta trocar esta linha:

    <?php if(function_exists('wp_pagenavi')) { wp_pagenavi(); } ?>

    Por esta:

    <?php if(function_exists('wp_pagenavi')) { wp_pagenavi( array( 'query' => $my_query ) ); } ?>

    Desta forma, você “entrega” o objeto da sua query PARA a função, com todas as informações que você colocou (como números de posts por página e tal) e aí ele pagina corretamente. Comigo sempre deu certo =) Espero que ajude.

    Criador do tópico EliasIII

    (@eliasiii)

    Boa tarde,

    Caro tio felix, infelizmente não deu certo…esta assim agora o fonte:

    <?php /*	category_name*/?>
    <?php /*     Template Name:Template - Noticias */
    get_header(); ?>
    <div id="container">
    <div id="content" role="main">
    <?php if (have_posts()) ; ?>
    <?php the_post(); ?>
    <?php $my_query = new WP_Query('cat=20&posts_per_page=3');  ?>
    <?php while ($my_query->have_posts()) : $my_query->the_post(); ?>
    <div id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
    <?php if ( is_front_page() ) { ?><h2 class="entry-title"><?php the_title(); ?></h2>
    <div class="entry-meta">Publicado em <?php the_date(); ?> por <?php the_author(); ?> / E-mail: <a href="mailto:<?php the_author_email (); ?>"><?php the_author_email(); ?></a></div>
    <?php } else { ?><h1 class="entry-title"><?php the_title(); ?></h1>
    <?php } ?>
    <div class="entry-content">
    <?php global $more; $more = FALSE; ?>
    <?php the_content('Continue Lendo...'); ?>
    <?php if (function_exists('the_views')) {the_views();} ?>
    <?php comments_template(); ?>
    </div><!-- .entry-content -->
    </div><!-- #post-## -->
    <?php endwhile; wp_reset_postdata(); ?>
    <?php if(function_exists('wp_pagenavi')) { wp_pagenavi( array( 'query' => $my_query ) ); } ?>
    </div><!-- #content -->
    </div><!-- #container -->
    <?php get_sidebar(); ?>
    <?php get_footer(); ?>

    Não sei o que fazer mais…
    grato pela atenção
    Elias

    Olha, to chutando BEM às cegas, mas suponho que seja pela função wp_reset_postdata() logo depois do endwhile.

    Ela pode estar resetando a ultima query que você fez, e por isso a partir dali, ela não existe mais na variável. =) Tente removê-la. Não faz diferença você não usá-la ali, já que está trabalhando com uma query dentro de um objeto.

    Criador do tópico EliasIII

    (@eliasiii)

    Infelizmente não deu certo, obrigado pela ajuda.

    Att
    Elias

Visualizando 8 respostas - 1 até 8 (de um total de 8)
  • O tópico ‘wp-pagenavi não mostra as corretamente’ está fechado para novas respostas.