Care este diferența dintre $paged și $page? (WordPress, Pagini, Paginare, Paginat, Split)

Hung PD a intrebat.

Creez o paginare pentru site-ul meu. Sper că toată lumea îmi poate explica la ce folosește codul de mai jos? Mulțumesc în avans.

<?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=');
?>

1 răspunsuri
Pieter Goosen

Sper că ați înțeles ce sunt variabilele de interogare. Dacă nu, iată-l pe scurt. Interogarea principală utilizează WP_Query pentru a se configura. În interogarea principală, WP_Query utilizează variabile de interogare publice pentru a construi interogarea principală în funcție de pagina solicitată, iar paged și page sunt două dintre ele. Pentru a vedea toate variabilele publice de interogare, lipiți acest lucru în antet și verificați în toate șabloanele cum sunt setate în funcție de pagina interogată

var_dump($wp_query->query_vars);

Funcția get_query_var() este utilizată pentru a obține valorile din aceste variabile publice de interogare, iar în acest caz este page și paged.

Pentru a răspunde la întrebarea dumneavoastră, acești doi parametri și valorile lor sunt utilizate de către WP_Query pentru a calcula paginarea și, mai ales, decalarea posturilor în funcție de numărul de pagini. Acest parametru este cel care asigură că mesajele dvs. se afișează corect atunci când paginarea prin pagini

  • paged -> Folosit pe pagina de start, pagina de blog, paginile de arhivă și paginile pentru a calcula paginarea. Prima pagină este 0 și de acolo numărul corespunde numărului de pagină

  • page -> Se folosește pe o pagină principală statică și pe paginile unice pentru paginare. Paginarea pe aceste pagini funcționează la fel, o pagină frontală statică este tratată ca o singură pagină la paginare. Prin paginare pe pagini unice, mă refer la faptul că postările unice pot fi împărțite în mai multe pagini

Ceea ce face codul dvs. în principiu este că verifică dacă paged este setat, iar dacă acest lucru nu reușește, verifică dacă parametrul page este setat, iar dacă nu este setat, setează pagina la 1. Această verificare va eșua întotdeauna la pagina 1, deci $paged va reveni întotdeauna la 1. Pe orice altă pagină în afară de pagina 1, fie paged fie page va returna adevărat și setează $paged la numărul de pagină corect

Notă finală: Nu utilizați niciodată query_posts cu excepția cazului în care trebuie să întrerupeți ceva pe pagina dvs. și, credeți-mă, nu doriți acest lucru. Folosiți întotdeauna WP_Query pentru interogări personalizate paginate. Pentru o explicație completă în acest sens, vă rugăm să consultați această postare pe care am făcut-o cu ceva timp în urmă

Comentarii

  • Mulțumesc @pieter-goosen Este o explicație foarte bună. Este paged utilizat pentru a obține pagina curentă care se vizualizează? –  > Por Hung PD.
  • Da, puteți utiliza echo get_query_var( 'paged' ); pentru a obține numărul paginii curente pe care o vizualizați –  > Por Pieter Goosen.
  • Excelentă explicație! Site-ul page primește parametrul <!--nextpage--> cuvânt cheie, care împarte o singură postare în mai multe pagini: ro.support.wordpress.com/nextpage/view-all –  > Por Philipp.