Încheierea buclei de paginare în PHP

26 feb. 2013, 21:37:06
Vizualizări: 78
Voturi: 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' => 'Următor',
                'type' => 'list'
            ));
        ?>
    </div>
    <div class="next"><?php previous_posts_link('&rarr;') ?></div>
</div>

Salut, am configurat o buclă de paginare și am ales să afișez atât numerele cât și link-urile prev/next. Totuși, încerc să aflu cum pot limita numerele la cele mai recente 5 articole [1,2,3,4,5] în loc să continue până la [1,2,3,4,5,6,7]. Cum aș putea să o limitez doar la cele mai recente 5 articole publicate pe blogul meu?

"Vreau doar să modific partea din div-class pages astfel încât să se oprească la 5." - Sper că are sens.

Captură de ecran a paginării

0
Toate răspunsurile la întrebare 1
5

Puteți încerca

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

Edit:

În codul sursă pentru paginate_links

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

link-urile sunt afișate într-o buclă cu $n = 1; $n <= $total; $n++ și deoarece %#% este înlocuit cu $n, ideea mea este să limitez numărul de link-uri de pagină afișate prin restricționarea $total la minimul dintre 5 și $wp_query->max_num_pages. Sper că acest lucru vă ajută ;-)

26 feb. 2013 21:46:08
Comentarii

Poți explica de ce această soluție ar putea rezolva problema și ai testat soluția?

s_ha_dum s_ha_dum
26 feb. 2013 22:12:02

sigur: m-am uitat la codul sursă pentru paginate_links și am observat bucla $n = 1; $n <= $total; $n++ și deoarece %#% este înlocuit cu $n, am crezut că ar putea limita numărul de linkuri de pagină afișate prin restricționarea lui $total la minimul dintre 5 și $wp_query->max_num_pages. Cel puțin aceasta a fost ideea mea ;-)

birgire birgire
26 feb. 2013 22:43:04

... ca parte a răspunsului tău. Acest răspuns a fost marcat drept "calitate scăzută din cauza lungimii și conținutului" de software, lucru pe care sunt sigur că vrei să-l eviți. Cel mai bine este să oferi o explicație împreună cu soluția brută (sugerată).

s_ha_dum s_ha_dum
26 feb. 2013 22:52:37

ok mulțumesc @s_ha_dum, tocmai m-am înregistrat acum câteva săptămâni așa că încă învăț regulile aici ;-) Voi actualiza răspunsul.

birgire birgire
26 feb. 2013 22:58:32

Mulțumesc, a funcționat! :3 Nu am găsit nimic în codex despre acest gen de lucruri.

Monstr92 Monstr92
28 feb. 2013 23:17:08