• Resolvido sandroman15

    (@sandroman15)


    Olá pessoal!

    Estou vindo aqui porque estou a três dias tentando implementar a paginação.
    Explicação bem simples, a paginação em si aparece, passa o mouse sobre ele mostra o link como deveria tipo o http://www.meusite.com/conteudo/page/2/, mas ao clicar ele simplesmente fica na pagina 1, não troca. A baixo as minhas configurações…
    Obs.: Já tentei até utilizando plugin e pesquisando nos foruns, já cheguei reescrever o código varias vezes e nada, certeza que estou deixando passar algo mas não sei oque…
    Se alguém puder dar uma luz eu agradeceria…

    single-anime.php

    <?php get_header();
    
    include_once( TEMPLATEPATH . '/_includes/mobile-detect.php' ); ?>
    
    	<section class="single-anime">
    
        <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
        
        <?php setPostViews(get_the_ID()); $current_postID = $post->ID; ?>
            <!-- Config Adicional -->
            <div class="titulo-lista-anime"><h1 class="titulo-lista-anime"><?php the_title(); ?></h1></div>
    
    		<div class="boxAnime">
    
    			<span class="boxAnimeImg" itemscope="" itemtype="http://schema.org/ImageObject">
    
    				<?php if(has_post_thumbnail()){ the_post_thumbnail('singleanime_size');} ?>
    
    			</span>
    
    			<div class="boxAnimeSobre">
    
    				<p class="boxAnimeSobreLinha"><b>Formato </b>: <?php echo get_the_term_list($post->ID, 'type')?:'undefined'; ?></p>
    
    				<p class="boxAnimeSobreLinha"><b>Genero </b>: <?php echo get_the_term_list($post->ID, 'genre', '', ', ')?:'undefined'; ?></p>
                    
    				<p class="boxAnimeSobreLinha"><b>Episódios </b>: <?php echo get_the_term_list($post->ID, 'episode')?:'undefined'; ?></p>
    
    				<p class="boxAnimeSobreLinha"><b>Status do Anime </b>: <?php echo get_the_term_list($post->ID, 'status')?:'undefined'; ?></p>
    
    				<p class="boxAnimeSobreLinha"><b>Estudio </b>: <?php echo get_the_term_list($post->ID, 'producer', '', ', ')?:'undefined'; ?></p>
    
    				<p class="boxAnimeSobreLinha"><b>Duração </b>: <?php echo get_the_term_list($post->ID, 'duration')?:'undefined'; ?></p>
    
    				<p class="boxAnimeSobreLinha"><b>Ano </b>: <?php echo get_the_term_list($post->ID, 'score')?:'undefined'; ?></p>
    
    			</div>
                
                <div class="clear"></div>
    
    		</div>
            
            <div id="information"></div>
    
    		<div class="conteudoBox">
    
    			<div class="conf-sino">Sinopse</div>
    
    			<div id="sinop" class="sinop2" style="display: none;"><?php the_content(); ?></div>
                <div id="sinop2" class="sinop" style="display: block;"><?php the_content(); ?></div>
    			<div class="btnsinop"><a href="#" onClick="checa(0)" id="my_link" >MOSTRAR MAIS</a></div>
    		</div>
    
    		<div class="tabela-lista-episodios">
    		<table class="singleanim-episode">
    
    			<thead>
    
    				<tr><th class="titulo-tabela-lista">Titulo</th><th class="titulo-tabela-lista">Assistir</th></tr>
    
    			</thead>
    
    			<tbody>
    
    			<?php endwhile; endif; ?>
    
    			<?php global $post; ?>
    
    			<?php $slug = get_post( $post->ID, "anime", true )->post_name; ?>
    
    			<?php $wp_query = new WP_Query("category_name=$slug&posts_per_page=5"); if($wp_query->have_posts()) : while($wp_query->have_posts()) : $wp_query->the_post(); ?>
          
                <tr>
    
    				<td class="_col-eps">
    
    					<a class="eps" href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a>
    
    				</td>
    
    				<td class="_col-dl">
    
    					<a href="<?php the_permalink(); ?>"><i class="fa fa-film"></i> Assistir</a>
    
    				</td>
    
    			</tr>
    
    		<?php endwhile; else: ?>
    
    			<tr>
    
    				<td class="_col-eps">
    
    					<a style="font-size:13px;">Anime ainda não está disponível para assistir.</a>
    
    				</td>
    
    				<td class="_col-dl">
    
    					<strike><a><i class="fa fa-film"></i> Assistir</a></strike>
    
    				</td>
    
    			</tr>
    
    			<?php endif; wp_reset_query();?>
    
    			</tbody>
    
    		</table>
            
            </div>
    	</section>
            <!-- Fim Config Adicional -->
    
            <!-- Content banner -->
            <?php $content_banner = get_banner( 'content' ); ?>        
            <?php if ( !empty( $content_banner ) ) : ?> 
                <div class="content-banner"><?php echo $content_banner ?></div>
            <?php endif; ?>
            
            <!-- Video content widget -->                      
            <?php
                if ( function_exists('dynamic_sidebar') && is_active_sidebar('video-content') )
                    dynamic_sidebar('Video Content');
            ?>
                
            <div class="clear"></div>
     <div class="pagination"><?php theme_pagination(); ?></div>      
        </div><!-- #content -->
    
    <?php get_sidebar(); ?>
    <?php get_footer(); ?>
    

    pagination.php

    <?php
    
    function theme_pagination($pages = '', $range = 4){  
         $showitems = ($range * 2)+1;  
    
         global $paged;
         if(empty($paged)) $paged = 1;
    
         if($pages == '')
         {
             global $wp_query;
             $pages = $wp_query->max_num_pages;
             if(!$pages)
             {
                 $pages = 1;
             }
         }   
    
         if(1 != $pages)
         {
             echo "<div class=\"pagination\"><ul><li><span>Page ".$paged." of ".$pages."</span></li>";
             
             if($paged > 2 && $paged > $range+1 && $showitems < $pages) echo "<li><a href='".get_pagenum_link(1)."'>&laquo; First</a></li>";
             if($paged > 1 && $showitems < $pages) echo "<li><a href='".get_pagenum_link($paged - 1)."'>&lsaquo; Previous</a></li>";
    
             for ($i=1; $i <= $pages; $i++)
             {
                 if (1 != $pages &&( !($i >= $paged+$range+1 || $i <= $paged-$range-1) || $pages <= $showitems ))
                 {
                     echo ($paged == $i)? "<li><span class=\"current\">".$i."</span></li>":"<li><a href='".get_pagenum_link($i)."' class=\"inactive\">".$i."</a></li>";
                 }
             }
    
             if ($paged < $pages && $showitems < $pages) echo "<li><a href=\"".get_pagenum_link($paged + 1)."\">Next &rsaquo;</a></li>";  
             if ($paged < $pages-1 &&  $paged+$range-1 < $pages && $showitems < $pages) echo "<li><a href='".get_pagenum_link($pages)."'>Last &raquo;</a></li>";
             echo "</ul></div>\n";
         }
    }
    
    /**** return page number ****/
    function page_number( $separator = '' ){
        global $paged;
        if( $paged > 1 ){
            echo $separator . 'page ' . $paged;
        }else{
            return false;
        }
    }
    
Visualizando 2 respostas - 1 até 2 (de um total de 2)
  • Moderador Mário Valney

    (@mariovalney)

    WordPress Cleric of Fire

    Olá @sandroman15, tudo bem?

    Imagino que o problema seja que a paginação funciona para queries nativas e você está criando uma nova query com o WP_Query.

    Então, você vai precisar passar para ela qual a página atual. Como você já está criando tudo, imagino que não preciso explicar como funciona a WP_Query, mas dê uma olhada lá na documentação dela em Pagination Parameters.

    Vê se isso resolve.

    Ah! Imagino que esteja fazendo a paginação dentro de Single pois cada anime terá uma single com os episódios sendo posts com aquela categoria, né? Funciona, porém gostaria de sugerir que criasse um Custom Post Type para isso.

    Custom Post Types, CPTs, são tipos de posts criados pelo site para fazer o que quiser. Dessa forma, não usará os posts normais para algo que não são posts, entendeu?

    Assim você pode criar um CPT episódios e nele você cria uma meta box com um select com as páginas já criadas. Aí você salva como um metadado para relacionar o episódio com a página onde vai aparecer.

    Depois é só fazer a query como tava fazendo, mas em vez de pegar pela categoria, você pega pelo post_type que criou e pelo meta_query com o metadado que você criou.

    Isso é o básico: pode criar uma metabox e um metadado para a ordenação também, por exemplo.

    Ah! Talvez o framework Odin possa te ajudar, se estiver criando seu Tema do zero.

    Abraços

    Criador do tópico sandroman15

    (@sandroman15)

    Boa noite, @mariovalney!

    Verdade vou fazer isso, muito obrigado pela dica, na verdade é ótima, vou verificar os links para estudar melhor…

    Abraço…

Visualizando 2 respostas - 1 até 2 (de um total de 2)
  • O tópico ‘Problema com Paginação, aparece mas não muda página.’ está fechado para novas respostas.