2013-02-10 1 views
0

J'utilise cette fonction pour la pagination sur mon site et j'essaie de comprendre. Pourquoi les variables $ pages et $ ranger attribuent-elles des valeurs dans le champ de paramètre? Pourquoi ne pas simplement les mettre dans la fonction? De même, comment la page ajoute-t-elle & paged = (page #) à l'URL? Si quelqu'un pouvait m'aider à démonter cette fonction, il serait grandement apprécié. Je veux finalement avoir juste un lien suivant et précédent à la place de tous les nombres qui sont générés, donc je veux minimiser cette fonction.Briser cette fonction

ici est la fonction

<?php 
function kriesi_pagination($pages = '', $range = 2) { 
$showitems = ($range * 2)+1; 

global $paged; 
if(empty($paged)) $paged = 1; 

if($pages == '') 
{ 
    global $wp_query; 
    $pages = $wp_query->max_num_pages; 
    if(!$pages) 
    { 
     $pages = 1; 
    } 
} 

if(1 != $pages) 
{ 
    echo "<div class='pagination'>"; 
    if($paged > 2 && $paged > $range+1 && $showitems < $pages) echo "<a href='".get_pagenum_link(1)."'>&laquo;</a>"; 
    if($paged > 1 && $showitems < $pages) echo "<a href='".get_pagenum_link($paged - 1)."'>&lsaquo;</a>"; 

    for ($i=1; $i <= $pages; $i++) 
    { 
     if (1 != $pages &&(!($i >= $paged+$range+1 || $i <= $paged-$range-1) || $pages <= $showitems)) 
     { 
      echo ($paged == $i)? "<span class='current'>".$i."</span>":"<a href='".get_pagenum_link($i)."' class='inactive' >".$i."</a>"; 
     } 
    } 

    if ($paged < $pages && $showitems < $pages) echo "<a href='".get_pagenum_link($paged + 1)."'>&rsaquo;</a>"; 
    if ($paged < $pages-1 && $paged+$range-1 < $pages && $showitems < $pages) echo "<a href='".get_pagenum_link($pages)."'>&raquo;</a>"; 
    echo "</div>\n"; 
} 
} 

Répondre

2

Le $pages = '', $rage = 2 dans la liste des paramètres est la définition valeurs par défaut pour ces arguments, les rendant ainsi en option. De cette façon, si vous appelez kriesi_pagination() sans arguments, cela revient à l'appeler avec les valeurs affichées.

L'ID de page ajouté aux liens est probablement effectué avec la fonction get_pagenum_link(), que vous n'avez pas affichée ici.