Insertar paginación en tu plantilla de WordPress

Ayer tuvimos que lidiar con una plantilla de WordPress que no paginaba. Aquí fue cómo lo arreglamos.

La página que más te puede ayudar es esta, aunque hay otras maneras de hacerlo como esta, o con un plugin. A nosotros nos gusta controlar más las cosas.

Vete al editor y edita la página personalizada que has creado. Ahí tendrás una parte superior con un header (optativo):   <?php get_header(); ?>.
Justo después el título de la página.
Después un código que busca las entradas. Esto hay dos maneras, con wp_query() y query_posts(), os aconsejo el segundo. Si no has puesto un filtro estará en blanco, os pongo el nuestro.

<?php
$args = array(
‘posts_per_page’ => 5,
‘category_name’ => ‘blog’,
‘paged’ => $paged,
);
query_posts($args); ?>

Esto lo que hace es “muestra 5 posts por página, de la categoría blog y los paginas. Esta última opción es importante. Después le dices que haga una búsqueda con esos argumentos (args). Evidentemente todo eso es modificable.

A continuación viene el LOOP que se llama en WordPress, es decir mostrar los artículos. Esto se puede hacer con varias modificaciones, ved el nuestro como ejemplo al final.
Justo detrás del Loop ponemos los enlaces de paginación:

<?php previous_posts_link(); ?>
<?php next_posts_link(); ?>

Cuidado que esto puede ser así de simple (página anterior y página siguiente) o con números (algo más complicado)

Y por último el sidebar y el footer.

Aquí está el código de ejemplo:

<?php /* Template Name: Blog */;?>
<?php get_header(); ?>
<!– Begin #colleft –>
<div id=”colLeft”>
<h1><?php the_title(); ?></h1>

<?php
$args = array(
‘posts_per_page’ => 5,
‘category_name’ => ‘blog’,
‘paged’ => $paged,
);
query_posts($args); ?>
<?php if (have_posts()): while (have_posts()) : the_post(); ?>

<h1><a href=”<?php the_permalink(); ?>”><?php the_title(); ?></a></h1>
<?php global $more; $more = false; ?>
<?php the_content(‘Continue Reading’); ?>
<?php $more = true; ?>

<?php endwhile; else: ?>

<p><?php _e(‘Sorry, no posts matched your criteria.’); ?></p>
<?php endif; ?>
<!– pagination –>
<?php previous_posts_link(); ?> &nbsp; &nbsp;
<?php next_posts_link(); ?>
<?php comments_template(); ?>
</div>
<!– End #colLeft –>

<?php get_sidebar(); ?>
<?php get_footer(); ?>

Deja un comentario

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s