• Resuelto PhoenixOMB

    (@phoenixomb)


    Hola,

    Estoy editando una página con una plantilla personalizada. En esta plantilla quiero mostrar una serie de posts de una categoria en concreto.

    Hasta ahí todo correcto, funciona y me muestra los posts que le indico de esa categoría.

    Para hacer el paginado utilizo la función «wp_corenavi». Le indico que me muestre un número de posts inferior al que tiene la categoría y corenavi me muestra las páginas y los iconos de forma correcta. Pero cuando pulso sobre el número de una página o en siguiente, en la URL que aparece en el navegador muestra que avanza: «/page/2/»,»/page/3/»…, pero me sigue mostrando las mismas entradas y en corenavi el «current» se mantiene en la página 1.

    (Corenavi lo utilizo también en el index.php y funciona de forma correcta)

    Pego el código de la página que es bastante corto:

    <?php
    /*
    Template Name: Tema de ejemplo
    */
    get_header();
    ?>
    
    <div id="post-theme">
    
    	<div id="post-content">
    		<?php query_posts(array('posts_per_page'=> 2,'cat'=> 3 )); ?>
    		<?php while (have_posts()) : the_post(); ?>
    			<h2 class="title-c">
    			<p><?php the_time('j'); ?> de <?php the_time('F, Y'); ?></p>
    				<a href="<?php the_permalink() ?>" rel="bookmark" title="Link a <?php the_title(); ?>">
    				<?php the_title(); ?>
    				</a>
    			</h2>
    		<?php endwhile;?>
    	</div>
    
    	<?php if (function_exists('wp_corenavi')) wp_corenavi(); ?>
    </div>	
    
    <?php get_footer(); ?>

    Gracias por cualquier solución o consejo.

Viendo 1 respuesta (de un total de 1)
  • Iniciador del debate PhoenixOMB

    (@phoenixomb)

    Bueno me contesto a mi mismo, finalmente encontré la solución en el Codex de WorPress, como siempre xd. Ayer orientaba mal el problema, creí que era por el wp_corenavi, algo ilógico ya que funcionaba bien en el index.php. Revisando en el Codex la paginación queda bastante claro mi problema y la solución:

    Codex_Paginacion

    Bueno ya dejo la solución por si le vale a alguién.

    En el primer ejemplo pegaba una consulta que siempre mostraba los dos últimos posts de la categoría 3, pero no tenia en cuenta la paginación:

    <?php query_posts(array('posts_per_page'=> 2,'cat'=> 3 )); ?>

    Lo correcto es:

    <?php $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; query_posts(array('cat'=>3,'posts_per_page'=>2,'paged' => $paged)); ?>

    Y el código completo queda de la siguiente forma:

    <?php
    /*
    Template Name: Tema de ejemplo
    */
    get_header();
    ?>
    
    <div id="post-theme">
    
    	<div id="post-content">
    		<?php $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; query_posts(array('cat'=>3,'posts_per_page'=>2,'paged' => $paged)); ?>
    		<?php while (have_posts()) : the_post(); ?>
    			<h2 class="title-c">
    			<p><?php the_time('j'); ?> de <?php the_time('F, Y'); ?></p>
    				<a href="<?php the_permalink() ?>" rel="bookmark" title="Link a <?php the_title(); ?>">
    				<?php the_title(); ?>
    				</a>
    			</h2>
    		<?php endwhile;?>
    	</div>
    
    	<?php if (function_exists('wp_corenavi')) wp_corenavi(); ?>
    </div>	
    
    <?php get_footer(); ?>

    Bueno pues doy el tema por solucionado.

Viendo 1 respuesta (de un total de 1)
  • El debate ‘Problema con el paginado de una plantilla’ está cerrado a nuevas respuestas.