TuZonaWP utiliza cookies. Lea nuestra Política de Privacidad para obtener más información. Para eliminar este mensaje, haga clic en el siguiente botón: Acepto el uso de cookies

Posteador
TuZonaWP
Administrador



Agregar Paginacion En WordPress



Agregar paginacion a wordpress sin la necesidad de utilizar pluguins nunca a sido fácil, tras una larga búsqueda lamentablemente solo te decepcionas, ya que algunos códigos no funcionan del todo generando algún tipo de error, no busques mas pues en esta ocasión te explicare de una forma muy detallada a como implementar la paginación a tu theme en wordpress, ademas podrás agregar tus propios estilos CSS, por otra parte el código es muy ligero así no ralentizara la carga de tu sitio web, !empecemos!.

En primer lugar debe crear un archivo llamado pagination.php ahora lo que resta es ingresar el código que le mostrare a continuación:


<?php function round_num($num, $to_nearest) { return floor($num/$to_nearest)*$to_nearest; } function pagenavi($before = '', $after = '') { global $wpdb, $wp_query; $pagenavi_options = array(); $pagenavi_options['pages_text'] = ('Página %CURRENT_PAGE% de %TOTAL_PAGES%:'); $pagenavi_options['current_text'] = '%PAGE_NUMBER%'; $pagenavi_options['page_text'] = '%PAGE_NUMBER%'; $pagenavi_options['first_text'] = ('Primera'); $pagenavi_options['last_text'] = ('Última'); $pagenavi_options['next_text'] = 'Siguiente &raquo;'; $pagenavi_options['prev_text'] = '&laquo; Anterior'; $pagenavi_options['dotright_text'] = '...'; $pagenavi_options['dotleft_text'] = '...'; $pagenavi_options['num_pages'] = 5; $pagenavi_options['always_show'] = 0; $pagenavi_options['num_larger_page_numbers'] = 0; $pagenavi_options['larger_page_numbers_multiple'] = 5; if (!is_single()) { $request = $wp_query->request;
$posts_per_page = intval(get_query_var('posts_per_page'));
$paged = intval(get_query_var('paged'));
$numposts = $wp_query->found_posts;
$max_page = $wp_query->max_num_pages;
if(empty($paged) || $paged == 0) {
$paged = 1;
}

$pages_to_show = intval($pagenavi_options['num_pages']);
$larger_page_to_show = intval($pagenavi_options['num_larger_page_numbers']);
$larger_page_multiple = intval($pagenavi_options['larger_page_numbers_multiple']);
$pages_to_show_minus_1 = $pages_to_show - 1;
$half_page_start = floor($pages_to_show_minus_1/2);
$half_page_end = ceil($pages_to_show_minus_1/2);
$start_page = $paged - $half_page_start;

if($start_page <= 0) { $start_page = 1; } $end_page = $paged + $half_page_end; if(($end_page - $start_page) != $pages_to_show_minus_1) { $end_page = $start_page + $pages_to_show_minus_1; } if($end_page > $max_page) {
$start_page = $max_page - $pages_to_show_minus_1;
$end_page = $max_page;
}
if($start_page <= 0) {
$start_page = 1;
}

$larger_per_page = $larger_page_to_show*$larger_page_multiple;
$larger_start_page_start = (round_num($start_page, 10) + $larger_page_multiple) - $larger_per_page;
$larger_start_page_end = round_num($start_page, 10) + $larger_page_multiple;
$larger_end_page_start = round_num($end_page, 10) + $larger_page_multiple;
$larger_end_page_end = round_num($end_page, 10) + ($larger_per_page);

if($larger_start_page_end - $larger_page_multiple == $start_page) {
$larger_start_page_start = $larger_start_page_start - $larger_page_multiple;
$larger_start_page_end = $larger_start_page_end - $larger_page_multiple;
}
if($larger_start_page_start <= 0) { $larger_start_page_start = $larger_page_multiple; } if($larger_start_page_end > $max_page) {
$larger_start_page_end = $max_page;
}
if($larger_end_page_end > $max_page) {
$larger_end_page_end = $max_page;
}
if($max_page > 1 || intval($pagenavi_options['always_show']) == 1) {
$pages_text = str_replace("%CURRENT_PAGE%", number_format_i18n($paged), $pagenavi_options['pages_text']);
$pages_text = str_replace("%TOTAL_PAGES%", number_format_i18n($max_page), $pages_text);
echo $before.'
<div class="pagenavi">'."
";

if(!empty($pages_text)) {
echo '<span class="pages">'.$pages_text.'</span>';
}
previous_posts_link($pagenavi_options['prev_text']);

if ($start_page >= 2 && $pages_to_show < $max_page) {
$first_page_text = str_replace("%TOTAL_PAGES%", number_format_i18n($max_page), $pagenavi_options['first_text']);
echo '<a href="'.esc_url(get_pagenum_link()).'" class="first" title="'.$first_page_text.'">1</a>';
if(!empty($pagenavi_options['dotleft_text'])) {
echo '<span class="expand">'.$pagenavi_options['dotleft_text'].'</span>';
}
}

if($larger_page_to_show > 0 && $larger_start_page_start > 0 && $larger_start_page_end <= $max_page) {
for($i = $larger_start_page_start; $i < $larger_start_page_end; $i+=$larger_page_multiple) {
$page_text = str_replace("%PAGE_NUMBER%", number_format_i18n($i), $pagenavi_options['page_text']);
echo '<a href="'.esc_url(get_pagenum_link($i)).'" class="single_page" title="'.$page_text.'">'.$page_text.'</a>';
}
}

for($i = $start_page; $i <= $end_page; $i++) {
if($i == $paged) {
$current_page_text = str_replace("%PAGE_NUMBER%", number_format_i18n($i), $pagenavi_options['current_text']);
echo '<span class="current">'.$current_page_text.'</span>';
} else {
$page_text = str_replace("%PAGE_NUMBER%", number_format_i18n($i), $pagenavi_options['page_text']);
echo '<a href="'.esc_url(get_pagenum_link($i)).'" class="single_page" title="'.$page_text.'">'.$page_text.'</a>';
}
}

if ($end_page < $max_page) {
if(!empty($pagenavi_options['dotright_text'])) {
echo '<span class="expand">'.$pagenavi_options['dotright_text'].'</span>';
}
$last_page_text = str_replace("%TOTAL_PAGES%", number_format_i18n($max_page), $pagenavi_options['last_text']);
echo '<a href="'.esc_url(get_pagenum_link($max_page)).'" class="last" title="'.$last_page_text.'">'.$max_page.'</a>';
}
next_posts_link($pagenavi_options['next_text'], $max_page);

if($larger_page_to_show > 0 && $larger_end_page_start < $max_page) {
for($i = $larger_end_page_start; $i <= $larger_end_page_end; $i+=$larger_page_multiple) {
$page_text = str_replace("%PAGE_NUMBER%", number_format_i18n($i), $pagenavi_options['page_text']);
echo '<a href="'.esc_url(get_pagenum_link($i)).'" class="single_page" title="'.$page_text.'">'.$page_text.'</a>';
}
}
echo '</div>

'.$after."
";
}
}
}
?>


Ya creado el archivo pagination.php deberán agregarlo dentro de la carpeta de su theme, ahora lo siguiente: llamar el archivo como pagination.php desde nuestro funstions.php, para ello ingrese a su área admin de wordpress, se dirige en la parte que dice Apariencia - Editor y dentro del área de editor dar clic en funstions.php y dentro de este archivo ingresar el siguiente código:


include_once('pagination.php');


Recuerden guardar los cambios dando clic en el botón Actualizar archivo, ahora el siguiente paso sera agregar los estilos CSS para ello dar clic en su hoja de estilos style.css, ya realizado lo anterior, agregar el siguiente código:


/*Paginacion*/
.pagenavi {
margin: 0px 0px 40px 0px;
padding: 5px 1px 5px;
float: left;
width: 100%;
text-align: center;
}

.pagenavi a {
padding: 5px 11px 5px 11px;
text-decoration: none;
color: #fff;
margin: 3px;
font-size: 16px;
background: #000;
}

.pagenavi a:hover {
border-radius: 10px;
}

.pagenavi span.pages,
.pagenavi span.current,
.pagenavi span.expand {
padding: 5px 10px 5px 10px;
margin: 3px;
color: #fff;
font-size: 16px;
background: #222;
}

.pagenavi .first,
.pagenavi .last,
.pagenavi .single_page {
border-radius: 2px;
}


Respecto al codigo CSS me he tomado la molestia de reducirlo, por el motivo de optimizacion para una mejor carga en nuestro sitio web.

PD, este código esta basado en el famoso pluguin Page - Navi.

0 Comentarios


Cargando comentarios espera un momento...
No tienes permisos para comentar.

Para poder comentar necesitas estar Registrado. O.. ya tienes usuario? Logueate!
Ir al cielo