Suporte » Plugins » Paginação na Home

  • Resolvido marccb

    (@marccb)


    Pessoal já pesquisei em diversos sites e as solução encontrada não deram certo, por isso recorro a ajuda de vocês aqui do fórum.

    Instalei um theme (delicious magazine) e quero inserir na home uma paginação para os posts. O site em questão é: http://www.azulpsicologia.com.br/azul

    Já tentei o WP-PageNavi e o WP-Paginate, mas sem sucesso.

    Obrigado

Visualizando 15 respostas - 1 até 15 (de um total de 18)
  • Cara, tem um tutorial da inter.net onde hospedo meu blog, me ajudou e não deu nenhum erro: http://amelhorcoisadomundo.com.br/blog

    Ai tem todos os tutoriais pra wordpress.

    abraço!

    Criador do tópico marccb

    (@marccb)

    Valeu pela dica, mas não encontrei o que preciso nele.

    Abaixo segue o código da index.php

    <?php get_header(); ?>
    <?php global $woo_options; ?>

    <div id=”content” class=”col-full”>
    <div id=”main” class=”col-left”>

    <?php if ( function_exists( ‘yoast_breadcrumb’ ) ) { yoast_breadcrumb( ‘<div id=”breadcrumb”><p>’, ‘</p></div>’ ); } ?>

    <?php
    // Sub featured area
    if ( $woo_options[‘woo_sub_featured’] == ‘true’ AND !is_paged() )
    include ( TEMPLATEPATH . ‘/includes/sub-featured.php’ );
    ?>

    <div id=”latest”<?php if ( $woo_options[‘woo_home_two_col’] == ‘true’ ) echo ‘ class=”two-col”‘; ?>>

    <h3 class=”section”><?php _e( ‘Matérias’, ‘woothemes’ ); ?></h3>
    <?php
    // Exclude featured posts
    global $shownposts;
    if ( get_option( ‘woo_exclude’ ) != $shownposts AND !is_paged )
    update_option( ‘woo_exclude’, $shownposts );

    if ( is_paged() )
    $shownposts = get_option( ‘woo_exclude’ );

    $paged = (get_query_var( ‘paged’ )) ? get_query_var( ‘paged’ ) : 1;
    $args = array(
    ‘paged’=> $paged,
    ‘post__not_in’ => $shownposts
    );
    query_posts( $args );
    ?>
    <?php if (have_posts()) : $count = 0; while (have_posts()) : the_post(); $count++; ?>

    <!– Post Starts –>
    <div <?php if ( $count == 2 ) { post_class(‘last’); $count = 0; } else { post_class(); } ?>>

    <?php if ( $woo_options[‘woo_post_content’] != “content” ) woo_image( ‘width=’.$woo_options[‘woo_thumb_w’].’&height=’.$woo_options[‘woo_thumb_h’].’&class=thumbnail ‘.$woo_options[‘woo_thumb_align’]); ?>
    <?php woo_post_meta(); ?>
    <h2 class=”title”>” rel=”bookmark” title=”<?php the_title(); ?>”><?php the_title(); ?></h2>

    <div class=”entry”>
    <?php global $more; $more = 0; ?>
    <?php if ( $woo_options[‘woo_post_content’] == “content” ) the_content(__( ‘Leia mais…’, ‘woothemes’ )); else the_excerpt(); ?>
    </div>
    <div class=”fix”></div>

    <div class=”post-more”>
    <?php if ( $woo_options[‘woo_post_content’] == “excerpt” ) { ?>
    <span class=”read-more”>” title=”<?php _e( ‘Continue lendo’, ‘woothemes’ ); ?>”><?php _e( ‘Leia mais…’, ‘woothemes’ ); ?></span>
    <?php } ?>
    </div>

    </div><!– /.post –>

    <?php endwhile; else: ?>
    <div class=”post”>
    <p><?php _e( ‘Desculpe, nenhum texto combina com seus critérios.’, ‘woothemes’ ) ?></p>
    </div><!– /.post –>
    <?php endif; ?>

    <?php woo_pagenav(); ?>

    </div><!– /#latest –>
    </div><!– /#main –>

    <?php get_sidebar(); ?>

    </div><!– /#content –>

    <?php get_footer(); ?>

    Tente utilizar o WP-Pagenavi e mude o query_posts() para WP_Query()
    Assim você vai ter um objeto do tipo WP_Query e o Pagenavi possui um parâmetro que é exatamente este objeto.

    $paged = (get_query_var( 'paged' )) ? get_query_var( 'paged' ) : 1;
    $args = array(
    'paged'=> $paged,
    'post__not_in' => $shownposts
    );
    $home_list = WP_Query( $args ); //Pode utilizar o nome que preferir
    ?>

    No Loop você precisará inserir o objeto WP_Query. Como exemplo, o $home_list:

    <?php if ($home_list->have_posts()) : $count = 0; while ($home_list->have_posts()) : $home_list->the_post(); $count++; ?>

    Quando finalizar o Loop, recomenda-se o uso do wp_reset_postdata() para não gerar conflitos:
    <?php endwhile; wp_reset_postdata(); else: ?>

    Com isso, o WP Pagenavi consegue construir a paginação normalmente, passando o método WP_Query($home_list):
    <?php if(function_exists('wp_pagenavi')) : wp_pagenavi(array( 'query' => $home_list )); endif; ?>

    Referência no FAQ do WP Pagenavi Using wp_pagenavi() with custom queries

    Obs: Sempre insira códigos entre acentos graves para ficar no tipo (code), senão não dá para ler direito!

    Abs e posta ae se não der certo!

    Criador do tópico marccb

    (@marccb)

    Oi Leo ,

    Veleu pelas dicas, mas não deu certo. Fiz as alterações e deu o seguinte erro na página:
    “Fatal error: Call to a member function get() on a non-object in /home/azulpsicologia/www/azul/wp-content/plugins/wp-pagenavi/core.php on line 30”

    Segue abaixo o index.php com as modificações:
    `<?php get_header(); ?>
    <?php global $woo_options; ?>

    <div id=”content” class=”col-full”>
    <div id=”main” class=”col-left”>

    <?php if ( function_exists( ‘yoast_breadcrumb’ ) ) { yoast_breadcrumb( ‘<div id=”breadcrumb”><p>’, ‘</p></div>’ ); } ?>

    <?php if(function_exists(‘wp_pagenavi’)) : wp_pagenavi(array( ‘query’ => $home_list )); endif; ?>

    <?php
    // Sub featured area
    if ( $woo_options[‘woo_sub_featured’] == ‘true’ AND !is_paged() )
    include ( TEMPLATEPATH . ‘/includes/sub-featured.php’ );
    ?>

    <div id=”latest”<?php if ( $woo_options[‘woo_home_two_col’] == ‘true’ ) echo ‘ class=”two-col”‘; ?>>

    <h3 class=”section”><?php _e( ‘Matérias’, ‘woothemes’ ); ?></h3>
    <?php
    // Exclude featured posts
    global $shownposts;
    if ( get_option( ‘woo_exclude’ ) != $shownposts AND !is_paged )
    update_option( ‘woo_exclude’, $shownposts );

    if ( is_paged() )
    $shownposts = get_option( ‘woo_exclude’ );

    $paged = (get_query_var( ‘paged’ )) ? get_query_var( ‘paged’ ) : 1;
    $args = array(
    ‘paged’=> $paged,
    ‘post__not_in’ => $shownposts
    );
    $home_list = WP_Query( $args ); //Pode utilizar o nome que preferir
    ?>

    <?php if ($home_list->have_posts()) : $count = 0; while ($home_list->have_posts()) : $home_list->the_post(); $count++; ?>

    <!– Post Starts –>
    <div <?php if ( $count == 2 ) { post_class(‘last’); $count = 0; } else { post_class(); } ?>>

    <?php if ( $woo_options[‘woo_post_content’] != “content” ) woo_image( ‘width=’.$woo_options[‘woo_thumb_w’].’&height=’.$woo_options[‘woo_thumb_h’].’&class=thumbnail ‘.$woo_options[‘woo_thumb_align’]); ?>
    <?php woo_post_meta(); ?>
    <h2 class=”title”>” rel=”bookmark” title=”<?php the_title(); ?>”><?php the_title(); ?></h2>

    <div class=”entry”>
    <?php global $more; $more = 0; ?>
    <?php if ( $woo_options[‘woo_post_content’] == “content” ) the_content(__( ‘Leia mais…’, ‘woothemes’ )); else the_excerpt(); ?>
    </div>
    <div class=”fix”></div>

    <div class=”post-more”>
    <?php if ( $woo_options[‘woo_post_content’] == “excerpt” ) { ?>
    <span class=”read-more”>” title=”<?php _e( ‘Leia matéria completa’, ‘woothemes’ ); ?>”><?php _e( ‘Leia mais…’, ‘woothemes’ ); ?></span>
    <?php } ?>
    </div>

    </div><!– /.post –>

    <?php endwhile; wp_reset_postdata(); else: ?>
    <div class=”post”>
    <p><?php _e( ‘Desculpe, nenhum texto combina com seus critérios.’, ‘woothemes’ ) ?></p>
    </div><!– /.post –>
    <?php endif; ?>

    <?php woo_pagenav(); ?>

    </div><!– /#latest –>
    </div><!– /#main –>

    <?php get_sidebar(); ?>

    </div><!– /#content –>

    <?php get_footer(); ?>

    Obrigado,

    Criador do tópico marccb

    (@marccb)

    <?php get_header(); ?>
     <?php global $woo_options; ?>
    
     <div id="content" class="col-full">
     <div id="main" class="col-left">
    
     <?php if ( function_exists( 'yoast_breadcrumb' ) ) { yoast_breadcrumb( '<div id="breadcrumb"><p>', '</p></div>' ); } ?>
    
    <?php if(function_exists('wp_pagenavi')) : wp_pagenavi(array( 'query' => $home_list )); endif; ?>
    
     <?php
     // Sub featured area
     if ( $woo_options['woo_sub_featured'] == 'true' AND !is_paged() )
     include ( TEMPLATEPATH . '/includes/sub-featured.php' );
     ?>
    
     <div id="latest"<?php if ( $woo_options['woo_home_two_col'] == 'true' ) echo ' class="two-col"'; ?>>
    
     <h3 class="section"><?php _e( 'Matérias', 'woothemes' ); ?></h3>
     <?php
     // Exclude featured posts
     global $shownposts;
     if ( get_option( 'woo_exclude' ) != $shownposts AND !is_paged )
     update_option( 'woo_exclude', $shownposts ); 
    
     if ( is_paged() )
     $shownposts = get_option( 'woo_exclude' );
    
     $paged = (get_query_var( 'paged' )) ? get_query_var( 'paged' ) : 1;
     $args = array(
     'paged'=> $paged,
     'post__not_in' => $shownposts
     );
     $home_list = WP_Query( $args ); //Pode utilizar o nome que preferir
     ?>
    
    <?php if ($home_list->have_posts()) : $count = 0; while ($home_list->have_posts()) : $home_list->the_post(); $count++; ?>
    
     <!-- Post Starts -->
     <div <?php if ( $count == 2 ) { post_class('last'); $count = 0; } else { post_class(); } ?>>
    
     <?php if ( $woo_options['woo_post_content'] != "content" ) woo_image( 'width='.$woo_options['woo_thumb_w'].'&height='.$woo_options['woo_thumb_h'].'&class=thumbnail '.$woo_options['woo_thumb_align']); ?>
     <?php woo_post_meta(); ?>
     <h2 class="title">" rel="bookmark" title="<?php the_title(); ?>"><?php the_title(); ?></h2>
    
     <div class="entry">
     <?php global $more; $more = 0; ?>
     <?php if ( $woo_options['woo_post_content'] == "content" ) the_content(__( 'Leia mais...', 'woothemes' )); else the_excerpt(); ?>
     </div>
     <div class="fix"></div>
    
     <div class="post-more">
     <?php if ( $woo_options['woo_post_content'] == "excerpt" ) { ?>
     <span class="read-more">" title="<?php _e( 'Leia matéria completa', 'woothemes' ); ?>"><?php _e( 'Leia mais...', 'woothemes' ); ?></span>
     <?php } ?>
     </div>
    
     </div><!-- /.post -->
    
     <?php endwhile; wp_reset_postdata(); else: ?>
     <div class="post">
     <p><?php _e( 'Desculpe, nenhum texto combina com seus critérios.', 'woothemes' ) ?></p>
     </div><!-- /.post -->
     <?php endif; ?>
    
     <?php woo_pagenav(); ?>
    
     </div><!-- /#latest -->
     </div><!-- /#main -->
    
     <?php get_sidebar(); ?>
    
     </div><!-- /#content -->
    
    <?php get_footer(); ?>

    O WP Pagenavi está habilitado?

    Você tinha colocado o pagenavi antes do Loop, precisa ser depois.

    Joguei no pastebin porque aqui fica meio ruim de ler e é orientação dos moderadores: http://pastebin.com/yVibv5bq

    Obs: Existe um monte de woo_ no seu tema, o que seria isso?

    Criador do tópico marccb

    (@marccb)

    Está ativado sim e agora funcionou porque como você disse, coloquei antes do Loop.

    Brigadão,

    Bom saber! Quando precisar, posta ae!
    Abs

    Bom dia Leo Caseiro, espero que estas informacoes me ajudem tbm irei testar mais tarde, e caso nao de certo espero que possa me ajudar pois ja abri um post e comentei em outro e ate o momento estou sem solucao, e preciso muito. caso queria ante mao dar uma olhada onde postei o endereço e http://br.forums.wordpress.org/topic/wp-pagenavi-nao-mostra-as-corretamente?replies=4

    Irei testar e aviso se der certo ou nao !

    Att
    Elias

    Boa tarde Caro Leo,

    Por favor me ajude, eu tentei fazer o que disse para o marccb e deu certo em partes, coloquei no final `<?php endwhile; wp_reset_postdata(); ?>
    <?php if(function_exists(‘wp_pagenavi’)) : wp_pagenavi(array( ‘query’ => $my_query )); endif; ?>`

    E deu certo agora ficando assim o template inteiro:

    <?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; wp_reset_postdata(); ?>
    			 <?php if(function_exists('wp_pagenavi')) : wp_pagenavi(array( 'query' => $my_query )); endif; ?>
                </div><!-- #content -->
    
            </div><!-- #container -->
    
    <?php get_sidebar(); ?>
    <?php get_footer(); ?>

    Ele esta paginando corretamente agora mostra 3 páginas, porém ao clica nas próximas ele não carrega os demais post, ficando somente nos 5 primeiros, e muda no endereço para paged=2,3 , porém nao trás os post´s das devidas páginas, o que será que estou errando, por favor me ajude !

    Att
    Elias

    Tente utilizar o plugin com o código simples dele (é o que eu faço)
    <?php wp_pagenavi(); ?>

    Uma vez eu tive um problema semelhante, apareciam todas as páginas mas elas não ‘abriam’. Quando percebi o problema era no functions.php
    Não me recordo o que tinha a mais no functions que me ocasionou este problema, porém dê uma olhada por lá, não custa 😀

    Obrigado pela dica, mas não resolveu colocar somente o wp_pagenavi();

    E quanto ao functions.php não sei o que pode ser tentei olhar mas não faço idéia não manjo muito, se vc lembrar por favor me avise, pois não consegui não…

    Valeu pela atenção
    ELias

    EliasIII entendi o que está acontecendo!

    Seguinte, como a paginação está em cima do WP_Query você precisa passar o parâmetro paged da Pagination informando qual página está no momento!

    Altere o $myquery conforme o código abaixo que deve funcionar:

    <?php
    $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
    $my_query = new WP_Query('cat=20&posts_per_page=3&paged=' . $paged);
    ?>

    Espero que ajude!

    Vixi Leo, ele fica a mesma coisa, ele tráz certo a quantidade de páginas, trazendo os últimos 3 post e na barra de endereço fica localhost/wordpress (blz), quando clico na página dois ele mude o endereço para http://localhost/wordpress/?paged=2 porém fica mostrando os últimos 3 posts ainda, não pega os demais.

    Grato
    Elias

    Amigo não sei se já resolveu seu caso. Eu estava com o mesmo problema que o seu e achei a solução aqui:

    http://scribu.net/wordpress/wp-pagenavi/wpn-2-74.html

    Fiz e funcionou.
    Espero ter ajudado

Visualizando 15 respostas - 1 até 15 (de um total de 18)
  • O tópico ‘Paginação na Home’ está fechado para novas respostas.