web-dev-qa-db-fra.com

Quelle est la différence entre $ paged et $ page?

Je crée une pagination pour mon site. J'espère que tout le monde peut m'expliquer à quoi sert le code ci-dessous? Merci d'avance.

<?php
if ( get_query_var('paged') ) {
    $paged = get_query_var('paged');
} elseif ( get_query_var('page') ) {
    $paged = get_query_var('page');
} else {
    $paged = 1;
}
query_posts('paged='.$paged.'&posts_per_page=');
?>
2
Hung The

J'espère que vous comprenez ce que sont les variables de requête. Sinon, le voici en bref. La requête principale utilise WP_Query pour se configurer. Dans la requête principale, WP_Query utilise des variables de requête publiques pour construire la requête principale en fonction de la page demandée, et paged et page en sont deux. Pour voir toutes les variables de requête publiques, collez-les dans votre en-tête et vérifiez sur tous les modèles comment ceux-ci sont définis en fonction de la page demandée.

var_dump($wp_query->query_vars);

La fonction get_query_var() est utilisée pour extraire les valeurs de ces variables de requête publiques. Dans ce cas, il s'agit de page et paged.

Pour répondre à votre question, ces deux paramètres et leurs valeurs sont utilisés par WP_Query pour calculer la pagination et, plus important encore, le décalage des publications en fonction du numéro de page. C’est ce paramètre qui garantit que votre page de messages correctement lorsque vous parcourez des pages

  • paged -> Utilisé sur la page d'accueil, le blog, les pages d'archive et les pages pour calculer la pagination. La 1ère page est 0 et à partir de là le numéro correspond au numéro de la page

  • page -> À utiliser sur une page de garde statique et sur des pages simples pour la pagination. La pagination sur ces pages fonctionne de la même manière, une page de garde statique est traitée comme une seule page lors de la pagination. Par pagination sur des pages simples, je veux dire que des articles uniques peuvent être divisés en plusieurs pages.

En gros, votre code vérifie si le paramètre paged est défini. Si cela échoue, il vérifie si le paramètre page est défini et, dans le cas contraire, définit la page sur 1. Cette vérification échouera toujours à la page 1, donc $paged sera toujours redescendu à 1. Sur toute autre page que la première, soit paged ou page renverra true et affectera $paged au numéro de page correct.

Note finale: N'utilisez jamais query_posts à moins que vous n'ayez besoin de casser quelque chose sur votre page et croyez-moi, vous ne voulez pas de cela. Utilisez toujours WP_Query pour les requêtes personnalisées paginées. Pour une explication complète à ce sujet, veuillez consulter cet article je l’ai fait il ya quelque temps

8
Pieter Goosen