PAGINACIÓN EN WORDPRESS SIN PLUGIN

wordpress-paginations

Este proceso nos permite reducir la cantidad de post o artículos mostrados en una determinada sección de nuestra pagina web, esto nos permite añadir una numeración cuando los post lleguen a un determinado numero de muestras. y para ello emplearemos una simple paginación el el loop de WordPress.

Para comenzar WordPress habilita por defecto esta paginacion y existen dos formas de realizarlos.

1.- Utilizar plugin
2.- crear nuestra propia paginación

en este caso realizaremos la segunda y para ello nos dirigimos a nuestro functions.php y añadimos este código.

<?php
function pagination($prev = '«', $next = '»') {
    global $wp_query, $wp_rewrite;
    $wp_query->query_vars['paged'] > 1 ? $current = $wp_query->query_vars['paged'] : $current = 1;
    $pagination = array(
        'base' => @add_query_arg('paged','%#%'),
        'format' => '',
        'total' => $wp_query->max_num_pages,
        'current' => $current,
        'prev_text' => __($prev),
        'next_text' => __($next),
        'type' => 'plain'
);
    if( $wp_rewrite->using_permalinks() )
        $pagination['base'] = user_trailingslashit( trailingslashit( remove_query_arg( 's', get_pagenum_link( 1 ) ) ) . 'page/%#%/', 'paged' );
    if( !empty($wp_query->query_vars['s']) )
        $pagination['add_args'] = array( 's' => get_query_var( 's' ) );
    echo paginate_links( $pagination );
};
?>

Ahora nos dirigimos a nuestra plantilla y el loop debe de quedar de la siguiente forma:

<?php if ( have_posts() ) : ?>
    <?php while ( have_posts() ) : the_post(); ?>
        // post goes here
    <?php endwhile; ?>
    <div class="pagination"><?php pagination('»', '«'); ?></div>
<?php endif; ?>

Posterior para estilizar añadimos un poco de CSS.

.page-numbers { font-size: 15px; }
.page-numbers.current { color: #222; }
.page-numbers .dots { letter-spacing: 1px }
a.page-numbers  { font-size: 14px; color: #3888ff; }

 

1 Estrella2 Estrellas3 Estrellas4 Estrellas5 Estrellas (Sin Calificar)
Loading...

Siguenos en: