Primirea și afișarea înregistrărilor

Pentru fiecare pagină, motorul WordPress generează o interogare de bază de date pentru a prelua înregistrările pe baza parametrilor cererii GET. Parametrii de solicitare post sunt setați în obiectul global $ wp_query. Dacă este necesar, puteți modifica această interogare de bază sau puteți crea un obiect de interogare nou în baza de date - WP_Query.

Interogarea SQL a obiectului WP_Query este stocată în proprietatea cererii:

Schimbarea interogării de bază

Obțineți parametri de solicitare

Folosind WP_Query pentru a prelua înregistrările

O dată voi da un exemplu de ciclu complet de încheiere a înregistrărilor / posturilor:

remarcă

Funcția wp_reset_postdata () restabilește variabila globală $ post de la obiectul global $ wp_query:

Apoi, vom examina mai detaliat detaliile fiecărei etape și posibilități suplimentare.

Metode de obținere a înregistrărilor

Obținerea unei intrări / postări prin id sau slug:

remarcă

Funcția get_post () este un wrapper peste WP_Post. este nevoie de parametrii suplimentari $ output și $ filter:

Generați o interogare nouă pentru a prelua intrări / postări WP_Query:

remarcă

Înregistrați filtre

Filtrele de bază și parametrii de interogare

remarcă

pagina (număr) - Număr pentru pagina de pornire statică. Afișează intrările care ar fi trebuit să fie afișate în mod normal pe pagina de paginare X a primei pagini.

remarcă

Notă privind tipurile de postări:

Filtru pe arbore (ierarhie)

remarcă

Filtrați după etichete (etichete)

meta_query - filtra pentru meta date

Parametrul meta_query reprezintă o serie de parametri imbriciți pentru filtrarea înregistrărilor / postărilor din meta date.

tax_query - filtrarea după taxonomie

Exemple de interogări

Obțineți paginile copil pentru pagina curentă:

Numărul total de postări disponibile:

Adăugați filtrul de interogări "postări numai cu imagini":

Rezultatul înregistrărilor

Bucle de înregistrare

remarcă

Utilizați wp_reset_postdata () pentru a "reseta" valoarea variabilei globale $ post la starea interogării principale, după terminarea tuturor ciclurilor de accesare cu crawlere! Deoarece fiecare the_post () înlocuiește variabilele globale, puteți observa că pe pagina de înregistrare, de exemplu, variabila post $ nu conține postul principal, ci un altul. Care ar putea fi ultimul post dintr-un anumit ciclu.

Câmpuri suplimentare / meta

Obțineți câmpurile meta:

Obțineți un link către imaginea postului principal:

WP_Query: query_vars

Obțineți obiectul (post sau taxonomia) interogării pentru ruta curentă / CNC:

Obțineți parametri de interogare pentru pagina curentă:

Obțineți parametrul solicitării WP_Query pentru pagina curentă (postarea sau înregistrările secțiunii):

setup_postdata ($ post)

Preia datele postare și generează variabile postale globale. Utilizează variabila $ post postată și obiectul global de interogare $ wp_query. Sunt create următoarele variabile globale: $ id, $ authordata, $ currentday, $ currentmonth, $ page, $ pages, $ multipage, $ more, $ numpages.

Funcția funcționează numai dacă îi transmiteți un obiect global al postului numit $ post. Dacă aveți un obiect post într-o altă variabilă - setați $ post = $ myWpPost, apoi treceți $ post la această funcție. Nu înțeleg cu adevărat cum funcționează această funcție dacă îmi trimit un ID post în loc de $ post.

$ query_vars - argumente de interogare

Obținerea câmpurilor postare individuale (post_type, post_title, post_status, post_content ..):

#worspress, #search, #filter

Articole similare