Come terminare il loop di paginazione in PHP

26 feb 2013, 21:37:06
Visualizzazioni: 78
Voti: 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' => 'Prec',
                'next_text' => 'Succ',
                'type' => 'list'
            ));
        ?>
    </div>
    <div class="next"><?php previous_posts_link('&rarr;') ?></div>
</div>

Ciao, ho configurato un loop di paginazione e ho scelto di mostrare sia i numeri che i link prec/succ. Tuttavia, sto cercando di capire come posso terminare i numeri ai 5 articoli più recenti [1,2,3,4,5] invece di continuare con [1,2,3,4,5,6,7]. Come posso fare per terminare la visualizzazione ai 5 articoli più recenti pubblicati sul mio blog?

"Vorrei solo modificare la parte div-class pages in modo che termini a 5." - Se questo ha senso.

Screenshot della paginazione

0
Tutte le risposte alla domanda 1
5

Potresti provare

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

Modifica:

Nel codice sorgente per paginate_links

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

i link vengono visualizzati in un ciclo con $n = 1; $n <= $total; $n++ e poiché %#% viene sostituito con $n, la mia idea è limitare il numero di link di paginazione visualizzati restringendo $total al minimo tra 5 e $wp_query->max_num_pages. Spero che questo aiuti ;-)

26 feb 2013 21:46:08
Commenti

Potresti spiegare perché questa soluzione potrebbe risolvere il problema e hai testato la soluzione?

s_ha_dum s_ha_dum
26 feb 2013 22:12:02

certo: ho esaminato il codice sorgente di paginate_links e ho notato il ciclo $n = 1; $n <= $total; $n++ e dato che %#% viene sostituito con $n, ho pensato che potrebbe limitare il numero di link di pagina visualizzati restringendo $total al minimo tra 5 e $wp_query->max_num_pages. Almeno questa era la mia idea ;-)

birgire birgire
26 feb 2013 22:43:04

... come parte della tua risposta. Questa risposta è stata contrassegnata come "di bassa qualità a causa della lunghezza e del contenuto" dal software, cosa che sono sicuro che tu voglia evitare. È meglio fornire una spiegazione insieme alla soluzione (suggerita) grezza.

s_ha_dum s_ha_dum
26 feb 2013 22:52:37

ok grazie @s_ha_dum, mi sono registrato da poche settimane quindi sto ancora imparando le regole qui ;-) Aggiornerò la risposta.

birgire birgire
26 feb 2013 22:58:32

Grazie, ha funzionato! :3 Non riuscivo a trovare nulla nel codex su questo tipo di cosa.

Monstr92 Monstr92
28 feb 2013 23:17:08