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)
  • 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

    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

    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.

    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.

    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.