Blog

Programación, desarrollo web y SEO

Paginar sin plugin en WordPress

Como paginar sin plugin

Para poder usar la paginación del plugin Page-Navi sin tener que instalarlo en tu theme podéis seguir estos pasos.

1. Descargamos el plugin WP-PageNavi de la página http://wordpress.org/extend/plugins/wp-pagenavi/

2. Extraer los ficheros wp-pagenavi.php y wp-pagenavi.css del zip que nos hemos bajado y los pegamos en tu_themeincludes y tu_theme/css respectivamente.

3. Ahora tenemos que modificar algunas líneas en los ficheros de nuestro theme.

3.1 En el fichero wp-pagenavi.php buscamos:

1
2
  function wp_pagenavi($before = '', $after = '')
 { global $wpdb, $wp_query;

y le agregamos después la llamada a la función pagenavi_init para que inicialice nuestra función, quedará así:

1
2
3
function wp_pagenavi($before = '', $after = '') {
        global $wpdb, $wp_query;
                 pagenavi_init();

3.2 Agregamos el enlace a la hoja de estilos de la paginación, buscamos donde está en enlace al CSS de nuestro theme, (normalmente está en el header.php)

1
<link rel="stylesheet" href="<?php bloginfo('stylesheet_url'); ?>" type="text/css" media="screen" />

Y pegamos justo debajo el enlace a nuestro nuevo css

1
<link rel="stylesheet" type="text/css" media="screen" href="<?php bloginfo('template_url');?>/pagenavi-css.css" />

4. Para que la paginación aparezca en todas las páginas agregar el código siguiente en el footer.php o en el index.php, si no, pégalo solamente en la página en la que te interese. Habrá que colocarlo después de obtener los post que deseamos mostrar.

1
2
3
4
5
6
<div class="navigation" align=center>
        <?php
         include('includes/wp-pagenavi.php');
         if(function_exists('wp_pagenavi')) { wp_pagenavi(); }
        ?>
     </div>

5. Para obtener los post primero recuperamos el número de página en la que nos encontramos:

$paged = (get_query_var(‘paged’)) ? get_query_var(‘paged’) : 1;

6. Para obtener los post usaremos query_posts, si en tu theme usan el objeto $my_query = new WP_Query() es mejor que lo cambies para no tener problemas. Tendremos algo así:

query_posts(“posts_per_page=3&order=DESC&order_by=date&paged=$paged&category_name=Fotos”);

Post_per_page , es el número de post que se mostrarán por página.

Order , el orden el en que aparecerán, ascendiente o descendiente.
order_by , ordenar por unos campos en concreto, en este caso ordenamos por el campo date.

Paged , la página en la que nos encontramos .

Category_name , solo nos sacará aquellos post con categoria “Fotos”.

7. Mostramos los post mediante un bucle:

1
2
while (have_posts()) : the_post(); 
<?php endwhile;?>

8. Para evitar que nos muestre siempre la primera página es necesario limpiar la function query realizada, para ello termínanos con esta línea.

9. Una vez seguidos estos pasos nos debería quedar algo así:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
query_posts("posts_per_page=3&order=DESC&order_by=date&paged=$paged&category_name=".$featured_category1); 
while (have_posts()) : the_post(); 
?>
<!—Aquí vendrá el formato que tendrán tus post.
<?php endwhile;?>
<?php global $more; $more = 0; ?>
     <div class="navigation" align=center>
        <?php
         include('includes/wp-pagenavi.php');
         if(function_exists('wp_pagenavi')) { wp_pagenavi(); }
        ?>
     </div>
Share this post

1 comment

Join the conversation
  • Juan - 14 agosto, 2013 reply

    gracias pero me gustaría hacer una paginacion desde la seccion 2, pero que no me pagine la seccion 1, vamos que la primera la la deje sin paginar.

Join the conversation


seis + 9 =