Terminando el bucle de paginación en PHP

26 feb 2013, 21:37:06
Vistas: 78
Votos: 0
<div id="pagination">
    <div class="prev"><?php next_posts_link('&larr;') ?></div>
    <div class="pages">
        <?php
            global $wp_query;
            $big = 9999;
            echo paginate_links(array(
                'base' => str_replace($big, '%#%', get_pagenum_link($big)),
                'format' => '?paged=%#%',
                'total' => $wp_query->max_num_pages,
                'current' => max(1, get_query_var('paged')),
                'show_all' => false,
                'end_size' => 1,
                'mid_size' => 5,
                'prev_next' => false,
                'prev_text' => 'Anterior',
                'next_text' => 'Siguiente',
                'type' => 'list'
            ));
        ?>
    </div>
    <div class="next"><?php previous_posts_link('&rarr;') ?></div>
</div>

Hola, tengo configurado un bucle de paginación y estoy mostrando tanto los números como los enlaces de anterior/siguiente. Sin embargo, estoy tratando de averiguar cómo puedo hacer que los números terminen en los 5 artículos más recientes [1,2,3,4,5] en lugar de continuar hasta [1,2,3,4,5,6,7]. ¿Cómo podría hacer que termine en los 5 artículos más recientes publicados en mi blog?

"Solo quiero editar la parte del div-class pages para que termine en 5." - Por si ayuda a entender mejor.

Captura de pantalla de paginación

0
Todas las respuestas a la pregunta 1
5

Podrías probar

'total' => min(5,$wp_query->max_num_pages),

Editar:

En el código fuente de paginate_links

http://core.trac.wordpress.org/browser/tags/3.5.1/wp-includes/general-template.php#L1922

los enlaces se muestran en un bucle con $n = 1; $n <= $total; $n++ y dado que %#% es reemplazado con $n, mi idea es limitar el número de enlaces de paginación mostrados restringiendo $total al mínimo entre 5 y $wp_query->max_num_pages. Espero que esto ayude ;-)

26 feb 2013 21:46:08
Comentarios

¿Podrías explicar por qué esto podría resolver el problema y has probado la solución?

s_ha_dum s_ha_dum
26 feb 2013 22:12:02

Claro: revisé el código fuente de paginate_links y noté el bucle $n = 1; $n <= $total; $n++ y como %#% es reemplazado por $n, pensé que podría limitar el número de enlaces de paginación mostrados restringiendo $total al mínimo entre 5 y $wp_query->max_num_pages. Al menos esa era mi idea ;-)

birgire birgire
26 feb 2013 22:43:04

... como parte de tu respuesta. Esta respuesta fue marcada como "de baja calidad debido a su longitud y contenido" por el software, lo cual estoy seguro que quieres evitar. Es mejor proporcionar una explicación junto con la solución (sugerida) cruda.

s_ha_dum s_ha_dum
26 feb 2013 22:52:37

ok gracias @s_ha_dum, acabo de registrarme hace unas semanas así que todavía estoy aprendiendo las reglas aquí ;-) Actualizaré la respuesta.

birgire birgire
26 feb 2013 22:58:32

¡Gracias, eso funcionó! :3 No pude encontrar nada en el codex sobre este tipo de cosas.

Monstr92 Monstr92
28 feb 2013 23:17:08