Pourquoi avez-vous besoin d'un entier improbable pour la pagination?

15

La référence de la fonction Codex paginate_links contient un exemple de code qui est rediffusé sur le réseau.

Sa section utilise une variable appelée $big = 999999999; // need an unlikely integer :

echo paginate_links( array(
    'base' => str_replace( $big, '%#%', esc_url( get_pagenum_link( $big ) ) ),
    'format' => '?paged=%#%',
    'current' => max( 1, get_query_var('paged') ),
    'total' => $wp_query->max_num_pages
) );

Et est utilisé dans str_replace dans la fonction echo paginate_links .

S'agit-il d'une forme d'encapsulation?

    
posée Jason Green 10.05.2013 - 18:04

1 réponse

16

Notez le get_pagenum_link( $big ) : Ceci créera une URL ( pas un lien) basée sur le nombre fourni dans le premier paramètre.

Cette fonction est utilisée pour obtenir le modèle de base de l'URL. Le nombre entier haut est utilisé ici, car:

  1. Vous devez fournir un entier comme argument.
  2. L'URL résultante est filtrée avec apply_filters('get_pagenum_link', $result) et peut être modifiée par les plugins. Ce risque est légèrement plus élevé pour les numéros correspondant aux pages existantes , par exemple lorsqu'un plug-in implémente des titres distincts pour les sous-pages.

Donc, ceci est juste une convention… sale, un signal aux autres plugins: ne changez pas ça s'il vous plait! Je pense que PHP_INT_MAX aurait été mieux, mais quand même laid. Et je me demande combien de développeurs de plugins savent que.

Le nombre est ensuite remplacé par le paramètre fictif requis dans paginate_links() .

Ce que vous voyez ici est une API incomplète . Essayez de tirer quelque chose de cet exemple - ne publiez pas d'API incomplètes, sinon vos documents seront embarrassants. :)

    
réponse donnée fuxia 10.05.2013 - 18:31

Lire d'autres questions sur les étiquettes