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

    (@marcaosilvaaa)

    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!

    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(); ?>

    Leo Caseiro

    (@leocaseiro)

    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!

    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,

    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(); ?>
    Leo Caseiro

    (@leocaseiro)

    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?

    marccb

    (@marccb)

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

    Brigadão,

    Leo Caseiro

    (@leocaseiro)

    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.